我正在深入研究XML的精彩世界。在对XML设置进行了一些修补之后,有一件事让我感到困惑,我在尝试构建导航时注意到了这一点。我将在下面举例说明我的问题。
<cfxml variable="myXML">
<navigation>
<navItem>
<name>Mens</name>
</navItem>
<navItem>
<name>Womens</name>
</navItem>
</navigation>
</cfxml>
<cfset navList = arrayToList(xmlSearch(xmlParse(myXML),
"string(//navItem/name/text()), "^")>
<cfloop list="#navList#" delimiter="^" index="nav">
<cfoutput>
#nav#
</cfoutput>
</cfloop>
我的目标是:
Mens
Womens
这可能现在开始对某些人有意义了。我正在尝试将名称值作为XML树中的 EACH <navItem>
字符串返回。当然,我被抛出的错误确实有意义,但是现在我仍然坚持如何将多个节点值作为字符串返回。
我收到的错误说明:
Unable to process the result of the XMLSearch for A sequence
of more than one item is not allowed as the first argument
of string() (text("Mens"), text("Womens")).
其次是:
ColdFusion is unable to process the result of the XPath search.
You may have an undefined variable in the xpath expression.
任何人都可以沿着正确的线路指向我吗?
答案 0 :(得分:1)
我会尝试
<cfset navList = arrayToList(xmlSearch(xmlParse(myXML), "//navItem/name"), "^")>
如果那不起作用,那么
<cfset navList = arrayToList(xmlSearch(xmlParse(myXML), "//navItem/name/string()"), "^")>