Groovy: получить XML-тег первого уровня - PullRequest
0 голосов
/ 13 июня 2018

Как этого добиться, чтобы получить имена тегов «первого уровня» XML-файла с помощью Groovy.Предположим, у нас есть следующий XML:

<records>
  <first>
    <car>
      <id>378932</id>
    </car>
  </first>
  <second>
    <foo>
      <car>
       <name>audi</name>
      </car>
    </foo>
  </second>
</records>

... Я хочу получить "first" и "second" в результате моего сценария.

Я анализирую XML с использованием XMLSlurper:

def xml = new XmlSlurper().parse("test.xml");

Я пытался с помощью метода deepFirst (), но он доставляет все доступные узлы.

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Один из способов сделать это:

def xml = new XmlSlurper().parse("test.xml")

xml.children().each { node -> 
  println node.name()
}

, где переменные xml и node имеют тип:

groovy.util.slurpersupport.NodeChild

Вышеприведенное печатает:

first
second

или если вы хотите, чтобы имена узлов первого уровня были представлены в виде списка:

def xml = new XmlSlurper().parse("test.xml")

def firstLevelNames = xml.children()*.name()
println firstLevelNames

, который печатает:

[first, second]
0 голосов
/ 13 июня 2018

Я могу добиться этого, используя следующее утверждение:

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