我有一个xml文档:
<book>
<content>
<chapter2>
</chapter2>
<chapter3>
</chapter3>
</content>
</book>
<cffile action="read" file="file.xml" variable="myxml">
<cfset mydoc = XmlParse(myxml)>
<cfset booknodes = xmlSearch(mydoc,'book/content') >
<cfloop from="1" to="#arraylen(booknodes)#" index="i" step="1">
<cfset bookXML = xmlparse(booknodes[i])>
#bookXML.content.XmlChildren[i].xmlName#
</cfloop>
在尝试确保我的代码正确时,我只是尝试打印出元素的xmlName。第二章和第三章。
循环只打印chapter2,当我打印booknodes的arraylen时,它只显示1但是当我转储变量booknodes时,第3节点存在于其所有的childern中。
循环似乎只是在一个循环之后停止。
我错过了什么吗?
答案 0 :(得分:3)
你引用了错误的东西而且你不需要复杂的XMLSearch等......这里:
<cfset booknodes = myxml.book.content>
<cfloop from="1" to="#arraylen(booknodes.XmlChildren)#" index="i" step="1">
<cfoutput>#booknodes.XmlChildren[i].xmlName#</cfoutput>
</cfloop>