我正在使用ColdFusion。我试图访问元素的属性,并不能完全弄清楚如何做到这一点。元素的名称是Package。属性的名称是ID。我需要获取包ID。
<cfset Packages = xmlSearch(MyXMLDoc, '/IntlRateV2Response/Package')>
我已经上传了我想要获取的身份证件的图像。
http://evikjames.com/SteinAir/xml.jpg
我发誓我已尝试过各种可能的组合,并随处寻找答案。但是,运气。你能帮忙吗?
我尝试过以下提供的解决方案。我无法让它为我工作。我似乎成功地将Package ID的值放入变量中,但它只是一个数组。我似乎无法在数组中访问它。这是我的错误:
Complex object types cannot be converted to simple values.
这是我正在使用的代码:
<cfset PackageID = xmlSearch(MyXMLDoc, 'Package/Package/@ID[i]')>
<cfset Observations = xmlSearch(MyXMLDoc, " Package/Observations[i]")>
我可以输出观察,但我无法输出PackageID。
怎么了?
答案 0 :(得分:5)
如果您关注this guide,以下内容适合您(基本上,这是XPath语法):
<cfset IdAttributes= xmlSearch(MyXMLDoc, '/IntlRateV2Response/Package/@ID')>
答案 1 :(得分:1)
更新:修复了每条评论的属性名称
的情况如果只需要“id”,Abel的方法就更加流畅了。但是,如果您还需要处理其他信息,则其中任何一个都应该有效。只需注意区分大小写的问题。
<cfxml variable="str">
<IntlRateV2Response>
<Package ID="123">a</Package>
<Package ID="456">b</Package>
<Package ID="789">c</Package>
</IntlRateV2Response>
</cfxml>
<cfset MyXMLDoc = xmlParse(str)>
<cfset packages = xmlSearch(MyXMLDoc, '/IntlRateV2Response/Package')>
<cfloop array="#packages#" index="pack">
<cfoutput>
#pack.xmlAttributes["ID"]# OR
#pack.xmlAttributes.ID#
</cfoutput>
</cfloop>