0

我正在使用 Open BlueDragon,因为它是我的网络托管公司使用的 - 而且它是开源的。

我正在尝试使用 XML 读取 YouTube 提要,但我不断收到以下错误:

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>

我认为它以前有效,除非我的大脑在欺骗我。任何帮助,将不胜感激。

谢谢

道格拉斯

4

2 回答 2

0

抱歉 - 我想该代码在 CF9,BlueDragon 上运行得非常好。如果您尝试了一组不同的数据会怎样-可能会导致线索:

#xml.feed.entry["gd:comments"]["gd:feedlink"].XmlAttributes.href#

如果这也失败了,我会怀疑引号语法或冒号表示法,然后尝试 BlueDragon 文档和用户论坛。

抱歉,我帮不上什么忙。

-肖恩

于 2011-08-16T02:11:47.183 回答
0

如果您更改对 xml.feed.entry[1]["gd:comments"]["gd:feedlink"].XmlAttributes.href 的引用,这适用于 BD。请注意,我已经指定了您的意思是哪个入口节点。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>

高温高压

于 2011-08-18T18:45:05.360 回答