使用Groovy XMLParser访问XML节点的内容

时间:2012-07-18 12:43:39

标签: groovy xml-parsing

我有一些元素具有相同的标记名称,但值相等。下面的示例显示了我的解析。

<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。在包括星期一和Linux之后,我需要什么语法来获取文本。

1 个答案:

答案 0 :(得分: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()}"
}