Xpath返回值列表

时间:2018-09-19 14:33:24

标签: xml xpath

我有以下XPATH /OMRequest/Record/Customer/PhoneList/Phone/text(),当Phone中只有一个PhoneList时,它可以很好地工作。但是,我想要一个XPath,它返回Phone中的所有PhoneList

以下是示例XML:

<OMRequest>
   <Record>
        <Customer>
            <PhoneList>
                <Phone>000000000</Phone>
                <Phone>000000000</Phone>
            </PhoneList>
            <CustomerId>424792716</CustomerId>
            <AccountNumber>1</AccountNumber>
            <ECPDId/>
            <ContractId/>
        </Customer>
    </Record>
</OMRequest>

1 个答案:

答案 0 :(得分:3)

如果文档中存在这样的文本节点,/OMRequest/Record/Customer/PhoneList/Phone/text()就会单独选择多个文本节点。

如果仅获得第一个,则可能会将节点集传递给另一个功能,该功能仅在该节点集的第一个节点上运行(使用XPath 1.0术语和构造)。

例如,在XPath 1.0中,

string(/OMRequest/Record/Customer/PhoneList/Phone/text())

仅采用所选文本节点的 first 的字符串值:

7702958254

其他功能以及来自托管语言的其他调用的行为也类似。

如果要在所有选定的文本节点上进行操作,则必须在XPath 1.0中迭代XPath之外的托管语言。 XPath 2.0具有序列而不是节点集,并且具有在XPath自身内部对序列进行操作的其他选项。