Я поддерживаю сайт для друга, которого я не создал. Он использует Symphony CMS, и мои знания XML/XSLT/XPATH в лучшем случае элементарны. Есть страница, в которой есть раздел подачи Instagram, который недавно остановил отображение изображений и теперь просто показывает текст Alt «Instagram».Выбор данных в RSS-ленте XML-пространство имен с XSLT в Symphony CMS
Соответствующий код из этого шаблона:
<section>
...
<xsl:for-each select="instagram/rss/channel/item[position() < '5']">
<div class="one-quarter left">
<img class="border" src="{image/url}" alt="Instagram" />
</div>
</xsl:for-each>
...
</section>
Источник данных план из этого раздела является Dynamic XML, который черпает из RSS-канал в https://websta.me/rss/n/vubrew:
<rss xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">
<channel>
<title>vubrew's feed - WEBSTA</title>
<link>https://widget.websta.me/rss/n/vubrew</link>
<description>
WEBSTA's RSS Feed - Websta is the best Instagram Web Viewer
</description>
<dc:language>en</dc:language>
<dc:creator>WEBSTA</dc:creator>
<pubDate>Fri, 19 Aug 2016 07:01:29 +0900</pubDate>
<atom:link href="https://widget.websta.me/rss/n/vubrew" rel="self" type="application/rss+xml"/>
<item>
<pubDate>Fri, 19 Aug 2016 00:32:44 +0900</pubDate>
<title>Fri, 19 Aug 2016 00:32:44 +0900</title>
<description>
Join Veterans United, Pit Sisters, and The Jed Fund tonight from 6 to 9 for the Mission Pawsible: TAILS kickoff event! There will be a food truck, raffles, and a silent auction, and $1 from every pint sold during the event will be donated to this great cause.
</description>
<atom:link href="https://websta.me/p/1319648356028404744_761313738"/>
<media:thumbnail url="https://scontent.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/13696890_1570626159907795_1849825203_n.jpg?ig_cache_key=MTMxOTY0ODM1NjAyODQwNDc0NA%3D%3D.2"/>
<guid>https://websta.me/p/1319648356028404744_761313738</guid>
</item>
<item>...</item>
...
</channel>
</rss>
Из того, что я могу сказать , похоже, что WEBSTA, возможно, недавно изменил формат своего XML-фида, так что {image/url}
больше не работает, чтобы выбрать изображения, которые теперь отображаются под пространством имен media
media:thumbnail/url
.
Я добавил новое пространство имен media
в панель управления администратора Symphony для источника данных Instagram с URI http://search.yahoo.com/mrss/
. (Другие, указанные в RSS-канале, уже присутствовали.)
Я попытался изменить источник изображения на {thumbnail/url}
, который производит тот же результат (только текст Alt) и {media:thumbnail/url}
, что приводит к появлению ошибки о недопустимом префикс пространства имен:
XSLTProcessor::transformToXml():
Undefined namespace prefix
xmlXPathCompiledEval: evaluation failed
XPath evaluation returned no result.
Попытка подтянуть media
URI из http://search.yahoo.com/mrss/
в браузере перенаправляет на главной странице Yahoo, и я нашел некоторую информацию о том, что данная спецификация может быть сохранена в другом месте, но я не могу показаться, найдите альтернативный URI. Поэтому мне интересно, является ли это частью проблемы?
Понятно, что мои знания XML/XSLT/XPATH являются тонкими, поэтому я не уверен, что я просто не укажу элемент правильно или если проблема связана с URI пространства имен мультимедиа, возможно, была перемещена. Я также подумал, что мне может понадобиться как-то обновить Symphony, чтобы распознать новое пространство имен в источнике данных, но я не вижу ничего, что могло бы это сделать.
Буду признателен за понимание.