我试图获取每个元素的子元素的xmltext(有377个元素)。内环是我不确定的。我甚至都不知道我做得对不对。非常感谢你的帮助。我也附加了一张图片,因此您可以看到XML结构。
代码:
<cfhttp url="https://company.company.com/company.svc/GetXML/16/" username="test" password="test" method="GET" result="headingsCode">
</cfhttp>
<cfset deliverablesXML = xmlparse(headingsCode.filecontent)>
<cfset packageNodes = XmlSearch(deliverablesXML, "//env:Envelope/env:Reports/env:Report/dl:Contracts/dl:Contract/")/>
<cfloop index="i" from="1" to="#arrayLen(packageNodes)#">
<cfloop from="1" to="#arrayLen(packageNodes[i].XmlChildren)#" index="ii">
?????????????????????
</cfloop>
</cfloop>
答案 0 :(得分:3)
我建议你嵌套foreach循环。通过名称而不是索引来维护节点级别更容易。例如:
<cfset dlNodes = []>
<cfloop array="#packageNodes#" index="xmlNode">
<cfloop array="#xmlNode.XmlChildren#" index="xmlNodeChild">
<cfset dlNodes.add(
(xmlNodeChild.XmlName & ": " & xmlNodeChild.XmlText)
)>
<!--- uncomment line below to debug a single XML node --->
<!--- <cfdump var="#xmlNodeChild#"><cfabort> --->
</cfloop>
</cfloop>
对于描述性节点名称来说,这不是一个很好的例子,因为我不知道你甚至在使用什么类型的数据,但是你明白了。