xpath получить значение атрибута concat string - PullRequest
1 голос
/ 22 апреля 2020

У меня есть xml с несколькими атрибутами: Вывод так:

Value: 111
Value: 222
Value: 333
Value: 444

Большое спасибо

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Да, это звучит выполнимо, если вы используете библиотеку функций XPath 2.0 . Вы можете написать что-то вроде:

concat('Value: ',string-join((//result/@value), '\nValue: '))

или:

concat('Value: ',string-join((//result/@value), '
Value: '))

в зависимости от того, как вы кодируете символ новой строки.

(проверено с использованием https://www.freeformatter.com/xpath-tester.html )

Другое решение - если у вас есть только анализатор XPath 1.0 - заключалось бы в простой оценке //result/@value, а затем в последующей обработке результата списка узлов, полученного таким образом на языке программирования, который вы используйте.

РЕДАКТИРОВАТЬ: если вам все еще нужно получить список узлов в результате и полагаться только на XPath, вы должны предпочесть ответ @ JackFleeting моему первому предложению.

(Кстати, я также подумал о том же решении, что и первый Джек, и проверил его на http://www.xpathtester.com/xpath, но это не сработало, возможно, потому, что на самом деле онлайн-анализатор глючит).

1 голос
/ 22 апреля 2020

Использование только чистого xpath:

//results//result/concat("Value: ", @value)

Вывод:

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