节点在nodeList,XPath中的位置

时间:2016-10-20 23:51:00

标签: xml xpath

如果我有两个NodeList s,其中一个列表是另一个列表的子集,有没有办法可以比较列表以确定所有节点的完整NodeList内的位置子集NodeList?例如,给定以下XML:

<Bill domain="QBO" sparse="false">
    <Line>
        <AccountBasedExpenseLineDetail>
            1
        </AccountBasedExpenseLineDetail>
    </Line>
</Bill>
<Bill domain="QBO" sparse="false">
    <Id>148</Id>
    <Line>
        <AccountBasedExpenseLineDetail>
            1
        </AccountBasedExpenseLineDetail>
    </Line>
</Bill>

评估Bill/Line将返回带有两个节点的NodeListBill[Id]/Line会返回一个NodeList个节点。如何从第一个Node中的第二个NodeList找到单个NodeList的位置?

1 个答案:

答案 0 :(得分:1)

这个XPath,

count((//Bill[Id])[1]/preceding-sibling::Bill[Line])

将从包含Bill子元素(Id)的文档中的第一个(//Bill[Id])[1]元素开始,并计算前一个兄弟的数量{{1具有Bill子元素的元素。