Groovy XmlSlurper无法获取具有默认命名空间的lang属性

Groovy XmlSlurper无法获取具有默认命名空间的lang属性,xml,groovy,Xml,Groovy,我有以下xml <group xmlns="http://www.cdisc.org/ns/odm/v1.3"> <item> <text xml:lang="en">Mild</text> <text xml:lang="fr">Legere</text> </item> <group> 温和的 莱格尔 我想从xml中获取所有的“en”字符串。

我有以下xml

<group xmlns="http://www.cdisc.org/ns/odm/v1.3">
    <item>
        <text xml:lang="en">Mild</text>
        <text xml:lang="fr">Legere</text>
    </item>
<group>

温和的
莱格尔
我想从xml中获取所有的“en”字符串。 我用下面的groovy代码解析它

def doc = new XmlSlurper().parse(inputstream).declareNamespace(xmlns:'http://www.cdisc.org/ns/odm/v1.3')

List<String> text = []
def s = doc.item.find{ it@":lang" = "en"}.each {
    text.add(it.text())
}

println text
def doc=new XmlSlurper().parse(inputstream).declareNamespace(xmlns:'http://www.cdisc.org/ns/odm/v1.3')
列表文本=[]
defs=doc.item.find{it@]:lang“=”en”}.each{
text.add(it.text())
}
打印文本
问题是忽略该属性是错误的。我注册了默认名称空间,在find闭包中尝试了xml:lang、:lang、lang的组合,但没有成功

有人知道我做错了什么吗


谢谢前缀
xml
总是指名称空间
http://www.w3.org/XML/1998/namespace
-这是固定的,不需要在XML文档中声明

所以试试看

def doc = new XmlSlurper().parse(inputstream).declareNamespace(
   xml:'http://www.w3.org/XML/1998/namespace')

然后,
xml:lang
应该可以像您期望的那样工作。

嗨,我试过这个,但没有成功。如果在文本节点上调用attributes().size(),则得到1,但在执行getAt(0)时,返回null。我也尝试过使用XmlParser进行解析,它给出了相同的结果。