XPath на основе значения атрибута - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь получить атрибут на основе условия, мой XML равен

<listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" 
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 
xmlns:rs="urn:schemas-microsoft-com:rowset" 
xmlns:z="#RowsetSchema">
<rs:data ItemCount="2">
    <z:row ows_Attachments=";#/Attachments/79/164351;#" ows_ID="79" />
    <z:row ows_Attachments=";#/Attachments/80/164352;#" ows_ID="80" />
</rs:data>
</listitems>

Я хочу получить ows_ID, где ows_Attachments заканчивается заданным числом c, например

Я хочу 79, если ows_Attachments заканчивается или содержит 164351; #

Если доступно какое-либо регулярное выражение для удаления всех пространств имен et c, а затем, если это упрощает обработку, я также открыт для этого варианта.

1 Ответ

0 голосов
/ 18 июня 2020

Строго говоря, с XPath вы можете выбрать атрибут с помощью:

//*[local-name()="row" and contains(@ows_Attachments,"/164351")]/@ows_ID

И извлечь значение с помощью:

string(//*[local-name()="row" and contains(@ows_Attachments,"/164351")]/@ows_ID)

Вывод: 79

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