Coldfusion / XML 错误

发布于 2024-11-29 17:50:51 字数 518 浏览 2 评论 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>

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

谢谢

道格拉斯

I'm using Open BlueDragon since it's what my web hosting company use - plus it's open source.

I'm trying to read a YouTube feed using XML, and I keep getting the following error:

value [media:group] is not a number

My code is:

<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>

I think it worked before unless my mind was playing tricks on me. Any help would be appreciated.

Thank you

Douglas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心如荒岛 2024-12-06 17:50:51

抱歉 - 该代码在 CF9 上运行得很好,我想是 BlueDragon 特有的。如果您尝试一组不同的数据怎么办 - 可能会带来线索:

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

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

抱歉我无法提供更多帮助。

-肖恩

Sorry - that code works perfectly fine on CF9, BlueDragon specific I suppose. what if you tried a different set of data - might lead to a clue:

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

If that fails as well I would suspect either the quote syntax or the colon notation, then try the BlueDragon docs & user forums.

Sorry I couldn't help more.

-sean

活泼老夫 2024-12-06 17:50:51

如果您更改对 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>

HTH

This work on BD if you change your reference to xml.feed.entry[1]["gd:comments"]["gd:feedlink"].XmlAttributes.href. Note that I've specified WHICH entry node you mean. CF is clever enough to work out you were meaning the FIRST "entry" node (is that what you meant?). BD is a bit more literal... it sees an array of "entry" nodes, so you need to specify which element of the array.

This simplified code demonstrates it:

<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>

HTH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文