Xpath для возврата списка значений - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть следующий 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 голосов
/ 19 сентября 2018

В одиночку, /OMRequest/Record/Customer/PhoneList/Phone/text() уже выберет несколько таких текстовых узлов, если они существуют в документе.

Если вы получаете только первый, то, скорее всего, вы передаете набор узлов другой функции,который работает только на первом узле набора узлов (используя терминологию и конструкции XPath 1.0).

Например, в XPath 1.0

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

принимает только строковое значение первый из выбранных текстовых узлов:

7702958254

Другие функции и другие вызовы с языков хостинга могут вести себя аналогично.

Если вы хотите работать со всем выделенным текстомузлы, в XPath 1.0 вам придется выполнять итерации на языке хостинга вне XPath.XPath 2.0 имеет последовательности, а не наборы узлов, и имеет дополнительные параметры для работы с последовательностями в самом XPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...