Groovy XmlSlurper:访问根节点属性值

11

我正在尝试使用Groovy和XmlSlurper访问根节点的属性。对于嵌套的节点,我可以轻松做到这一点,但是似乎无法访问根节点。

这是XML结构(简化版):

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

我想要获取被覆盖的行和有效行的属性值。以下是我正在尝试的代码:

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

1
@lines-covered 将被解析为 @lines - covered; 当属性包含其他字符时,您必须将其引用。 - Dave Newton
@DaveNewton 感谢您修复了我愚蠢的括号/引号错误和不正确的拼写(天哪,我不知道我怎么会让那种事情发生...) - grantmcconnaughey
1个回答

24

因为 lines-covered 包含破折号,所以需要将其放在引号中:

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

1
你不喜欢简单的修复吗?如果它解决了你的问题,请考虑将其标记为答案 - grantmcconnaughey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接