xml - Groovy XmlSlurper 访问根节点中的属性值

标签 xml groovy xml-parsing

我正在尝试使用 Groovy 和 XmlSlurper 来完成对属于根节点的属性的访问。我可以使用嵌套节点轻松完成此操作,但似乎无法访问根节点。

这是 XML 结构(简化):

<coverage lines-covered="2353" lines-valid="2943">
    <sources />
    <packages />
</coverage>

我希望能够获得 lines-covered 和 lines-valid 属性值。这是我正在尝试的代码:

def cobertura = new XmlSlurper().parse(xml)
def coverage = cobertura.coverage
def lines = cobertura.find { it.@lines-covered }
println lines

我也试过:

def cobertura = new XmlSlurper().parse("cobertura-coverage.xml")
def coverage = cobertura.coverage
println coverage.@lines-covered

和:

def cobertura = new XmlSlurper().parse("cobertura-coverage.xml")
println cobertura.@lines-covered

最佳答案

您需要将 lines-covered 部分放在引号中,因为它包含破折号:

def cobertura = new XmlSlurper().parse("cobertura-coverage.xml")
println cobertura.@'lines-covered'

关于xml - Groovy XmlSlurper 访问根节点中的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22769166/

相关文章:

xml - 向 groovy MarkupBuilder 或 StreamingMarkupBuilder 添加动态元素和属性

java - 使用 GroovyShell 从 Java 代码运行脚本

java - 如何使用http post 连接grails 登录系统?

php - XML 文档末尾的额外内容(使用 PHP SimpleXML)

java - 不使用反射的java xml序列化生成器

android - Android EditText,ButtonEdit无法正确显示?

linux - 过滤 block

c# - 在 foreach 循环中解析 XML

python - 使用 ElementTree 删除父标签(不删除子标签)

java - 由二进制 XML 文件引起的 IllegalArgumentException (Android)