让XmlSearch只返回兄弟姐妹,而不是孩子

时间:2012-05-31 00:59:33

标签: xpath coldfusion

我收到的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']")  />

问题是,相反,如果获得一个包含三个元素的数组,我得到一个数组,其中包含6:3的父项和3个子项。

我不能为我的生活找出XPath声明,只会找到兄弟姐妹,而不是孩子。

请帮助。

1 个答案:

答案 0 :(得分:1)

使用

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

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