Dou*_*las 3 xml coldfusion bluedragon
我一直在努力寻找解决方案。我的代码与我在Google搜索中看到的代码不同,并且我尝试过的任何方法都无法正常工作。基本上如标题所示,我想检查Xml Node是否存在。这是因为YouTube Feed中返回的XML不正确。代码如下。
<cfset YouTubeXml = xmlParse(#YouTubeFavourites.FileContent#) />
<cfset group = XmlSearch(YouTubeXml, "//media:group") />
<cfloop from="1" to="25" index="i">
<cfoutput>
#group[i]['media:thumbnail'][i]['url']#
</cfoutput>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
基本上,该错误表明该错误#group[i]['media:thumbnail'][i]['url']#不存在。希望有人能帮忙。
以下代码将在尝试显示变量之前进行检查,以确保该变量存在。嵌套方法是确保每一步都存在的唯一方法。有一些功能使其看上去更漂亮,但这是另一个问题。
<cfset YouTubeXml = xmlParse( YouTubeFavourites.FileContent ) />
<cfset group = XmlSearch( YouTubeXml, "//media:group" ) />
<cfoutput>
<cfloop from="1" to="25" index="i">
<cfif StructKeyExists( Group, i )
AND StructKeyExists( Group[ i ], 'media:thumbnail' )
AND StructKeyExists( Group[ i ][ 'media:thumbnail' ], i )
AND StructKeyExists( Group[ i ][ 'media:thumbnail' ][ i ], 'url' )>
#group[i]['media:thumbnail'][i]['url']#
</cfif>
</cfloop>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
我发现您i在变量名称中使用了两次,这很奇怪,但是我对Youtube API并不熟悉,所以也许这是正确的。
我已经更改了代码中不需要的两件事。我删除了多余的##符号,xmlParse()因为它已经在那里被当作变量了。我也将其<cfoutput>移出循环,因为<cfoutput>多次声明会导致轻微的性能损失。
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |