首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Groovy XmlSlurper无法获取具有默认命名空间的lang属性

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

Stack Overflow用户
提问于 2014-01-03 00:52:45
回答 1查看 445关注 0票数 0

我有以下xml

代码语言:javascript
运行
复制
<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代码解析它

代码语言:javascript
运行
复制
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

问题是它似乎忽略了这个属性。我注册了默认名称空间,我在find闭包中尝试了xml: lang,:lang,lang的组合,但没有成功。

有人知道我做错了什么吗。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-01-03 01:01:55

XML前缀总是引用名称空间http://www.w3.org/XML/1998/namespace -这是固定的in the namespaces specification,不需要在xml文档中声明。

所以试一试

代码语言:javascript
运行
复制
def doc = new XmlSlurper().parse(inputstream).declareNamespace(
   xml:'http://www.w3.org/XML/1998/namespace')

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20887664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档