Groovy:获取XML标记的第一级

时间:2018-06-13 13:53:28

标签: xml groovy

如何实现"第一级"使用Groovy标记XML文件的名称。 假设我们有以下XML:



<records>
  <first>
    <car>
      <id>378932</id>
    </car>
  </first>
  <second>
    <foo>
      <car>
       <name>audi</name>
      </car>
    </foo>
  </second>
</records>
&#13;
&#13;
&#13;

......我想第一次&#34;和&#34;第二&#34;因为我的剧本。

我正在使用XMLSlurper解析XML:

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

我尝试使用depthFirst()方法,但这会传递所有可用的节点。

由于

2 个答案:

答案 0 :(得分:0)

我可以使用以下语句实现此目的:

println xml.'*'*.name()

答案 1 :(得分:0)

这样做的一种方法是:

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

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

其中xmlnode变量的类型均为:

groovy.util.slurpersupport.NodeChild

以上版画:

first
second

或者如果您希望将第一级节点名称作为列表:

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

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

打印:

[first, second]