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

问题描述:

我有一些具有相同标记名称但等于不同值的元素。下面的例子显示了我的解析。使用Groovy XMLParser访问XML节点的内容

<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。

+0

你需要抓住每个标签的.text,你特别要求属性值。 – 2012-07-18 12:45:46

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

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

如果你把你的每一个进一步下跌的树,那么你可以很容易地将它们打印在一行

langs.ReportHost.HostProperties.tag.each { tag -> 
    println "tag=${[email protected]} content=${tag.text()}" 
}