代码之家  ›  专栏  ›  技术社区  ›  Robin

Xpath返回值列表

  •  1
  • Robin  · 技术社区  · 6 年前

    /OMRequest/Record/Customer/PhoneList/Phone/text() 只有一个的时候效果很好 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 回复  |  直到 6 年前
        1
  •  3
  •   kjhughes    6 年前

    /OMRequest/Record/Customer/PhoneList/Phone/text() 将已经选择多个这样的文本节点(如果它们存在于文档中)。

    如果只获取第一个节点,那么很可能将节点集传递给另一个函数,该函数只在节点集的第一个节点上操作(使用XPath1.0术语和构造)。

    例如,在XPath1.0中,

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

    只取 第一 所选文本节点的名称:

    7702958254
    

    其他函数和来自宿主语言的其他调用的行为也类似。

    如果要对所有选定的文本节点进行操作,那么在XPath1.0中,必须在XPath之外的宿主语言中进行迭代。xpath2.0有序列而不是节点集,并且有额外的选项来操作XPath本身中的序列。