Извлечение информации при сохранении отношений с Xpath - PullRequest
0 голосов
/ 11 июля 2019

У меня есть файл html / xml, который имеет следующую структуру:

<a class="my-class">
  <b>Text1</b>
  <c>
    <d>123</d>
    <d>456</d>
  </c>
  <b>Text2</b>
  <c>
    <d>789</d>
    <d>000</d>
  </c>
</a

Я ищу выражение xPath, которое может дать мне следующий вывод (в любом списке):

Text1.123
Text1.456
Text2.789
Text2.000

Я играл и тестировал concat (), но я не мог понять, как извлечь эту информацию и каким-то образом сохранить их связь, используя только одно выражение xPath. Это вообще возможно?

1 Ответ

0 голосов
/ 12 июля 2019

Это достижимо только с XPath-2.0 или выше .
Таким образом, следующее выражение XPath-2.0 достигнет того, что вы хотите:

for $c in /a/c return for $i in $c/d return concat($c/preceding-sibling::b[1],'.',$i,'&#xa;')

Его выводis:

Text1.123
Text1.456
Text2.789
Text2.000

Может быть несколько начальных пробелов, но это зависит от процессора XPath.

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