1

我有一些标签名称相同但值不同的元素。下面的示例显示了我的解析。

<Report>
<ReportHost name= 2.3.3.3><HostProperties>
<tag name="x"> Monday...</tag>
<tag name="z"> Linux.....</tag>

我的问题是如何捕获字符串“x”..和“z”之后的文本目前我有

langs.Report.ReportHost.each{ReportHost->
${ReportHost.HostProperties.tag['@name']}"

但这只是抓取 x 和 z。我需要什么语法来获取包括 Monday 和 Linux 之后的文本。

4

1 回答 1

2

这将打印出标签属性列表,然后是节点内容列表:

langs.ReportHost.each { reportHost ->
  println "tag  = ${reportHost.HostProperties.tag['@name']}"
  println "cont = ${reportHost.HostProperties.tag*.text()}"
}

如果你把你的每一个都放在树的下面,那么你可以很容易地把它们打印在一行上

langs.ReportHost.HostProperties.tag.each { tag ->
  println "tag=${tag.@name} content=${tag.text()}"
}
于 2012-07-18T12:51:01.667 回答