Как извлечь все узлы из xml с заданным scpath xpath - PullRequest
0 голосов
/ 17 апреля 2019

При условии, что у меня есть такой XML

val myXml: NodeSeq = scala.xml.Utility.trim(<a>
    <b>
      <c>Mom</c>
    </b>
    <b>
      <c>Dad</c>
    </b>
    <notb>
      <c>foo</c>
      <c>bar</c>
    </notb>
  </a>)

Как я могу получить "мама" и "папа" из xpath, такого как этот? "b/c"

1 Ответ

2 голосов
/ 17 апреля 2019

Используя foldLeft, можно получить все элементы

"b/c"
  .split('/')
  .foldLeft(myXml)((node, path) => node \ path)

Вывод:

res0: scala.xml.NodeSeq = <c>Mom</c><c>Dad</c>

Можно даже использовать "подстановочные знаки" для сопоставления всех детей

"_/c"
  .split('/')
  .foldLeft(myXml)((node, path) => node \ path)

Вывод:

res1: scala.xml.NodeSeq = <c>Mom</c><c>Dad</c><c>foo</c><c>bar</c>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...