Coldfusion / XML Error
Я использую Open BlueDragon, потому что это то, чем пользуется моя веб-хостинговая компания, плюс открытый исходный код.
Я пытаюсь прочитать канал YouTube с использованием XML и получаю следующую ошибку:
value [media:group] is not a number
Мой код:
<cfhttp url="https://gdata.youtube.com/feeds/api/users/Shuggy23/favorites" method="GET" />
<cfset xml = XmlParse(#cfhttp.FileContent#) />
<cfoutput>#xml.feed.entry["media:group"]["media:thumbnail"].XmlAttributes.url#</cfoutput>
Я думаю, что это сработало раньше, если только мой разум не обманывал меня. Любая помощь будет оценена.
Спасибо
Дуглас
2 ответа
Извините - этот код прекрасно работает на CF9, я полагаю, в BlueDragon. Что делать, если вы попробовали другой набор данных - может привести к подсказке:
#xml.feed.entry["gd:comments"]["gd:feedlink"].XmlAttributes.href#
Если и это не помогает, я бы заподозрил либо синтаксис цитаты, либо запись двоеточия, тогда попробуйте документы и форумы BlueDragon.
Извините, я не мог помочь больше.
-sean
Это работает на BD, если вы измените свою ссылку на xml.feed.entry[1]["gd:comments"]["gd:feedlink"].XmlAttributes.href. Обратите внимание, что я указал, какой узел входа вы имеете в виду. CF достаточно умен, чтобы понять, что вы имели в виду ПЕРВЫЙ "входной" узел (вы это имели в виду?). BD немного более буквальный... он видит массив "входных" узлов, поэтому вам нужно указать, какой элемент массива.
Этот упрощенный код демонстрирует это:
<cfflush interval="1">
<cfxml variable="x">
<a>
<b><c>d</c></b>
<b><c>e</c></b>
</a>
</cfxml>
<cfoutput>x.a.b[1]["c"].xmlText: #x.a.b[1]["c"].xmlText# (OK on both platforms)<br /></cfoutput>
<cftry>
<cfoutput>x.a.b["c"].xmlText: #x.a.b["c"].xmlText# (OK on CF only)<br /></cfoutput>
<cfcatch>
<cfdump var="#cfcatch#">
<cfdump var="#x#">
</cfcatch>
</cftry>
НТН