2

我收到如下所示的 SOAP 响应:

<Activity>
    <Id>A</Id>
    <Subject>foo</Subject>
    <Activity>Task</Activity>
</Activity>
<Activity>
    <Id>B</Id>
    <Subject>bar</Subject>
    <Activity>Appointment</Activity>
</Activity>
<Activity>
    <Id>C</Id>
    <Subject>snafu</Subject>
    <Activity>Task</Activity>
</Activity>

在 Coldfusion 中,我试图用这个来解析 Activity 节点:

<cfset arrMainNodes = XmlSearch(soapResponse,  "//*[name()='Activity']")  />

问题是,如果得到一个包含三个元素的数组,我得到一个包含六个元素的数组:3 个父元素和 3 个子元素。

我一生都无法弄清楚 XPath 语句只会找到兄弟姐妹,而不是孩子。

请帮忙。

4

1 回答 1

1

使用

//*[name()='Activity' and not(ancestor::*[name()='Activity' ])]

这将选择文档中的所有元素,其名称为"Activity"并且没有名称为祖先的"Activity"元素。

于 2012-05-31T02:24:42.393 回答