如何解析Coldfusion中的每个XML元素/ XML子元素

时间:2016-07-01 21:06:12

标签: xml parsing coldfusion

我试图获取每个元素的子元素的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>

An example of one of the elements

1 个答案:

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

对于描述性节点名称来说,这不是一个很好的例子,因为我不知道你甚至在使用什么类型的数据,但是你明白了。