小编ste*_*ler的帖子

Groovy XmlSlurper:获取具有关联命名空间的属性的值

我有一个XML文档,其中包含具有限定名称的属性.我想使用XmlSlurper获取属性值,但尝试访问该属性而不指定命名空间不起作用(下面是一个最小的例子).

def rootNode = new XmlSlurper().parseText(
'''<root xmlns:ex="http://example.com">
     <one ex:a1="uno!"/>
     <ex:two>Some text!</ex:two>
   </root>''' )

assert rootNode.one[0].@a1.text() == 'uno!'
Run Code Online (Sandbox Code Playgroud)

rootNode.one[0].@a1.text()将产生一个空字符串.如果使用rootNode.one[0].'@ex:a1'.text()我们得到正确的值,但这取决于文档中使用的命名空间前缀 - 并且不能依赖于其他文档相同,关联的命名空间才是最重要的.

所以问题是: 如何使用XmlSlurper来访问具有关联命名空间的属性的属性值,而无需指定命名空间前缀?(如果需要提供整个命名空间,那就没关系)

xml groovy namespaces

5
推荐指数
1
解决办法
6410
查看次数

标签 统计

groovy ×1

namespaces ×1

xml ×1