我有一个XMl,其属性是例如模型:名称
升级到Grails 2后,无法使用
提取属性它@ “模型:名称”。的.text()
我已阅读How to read the hyphenated attribute names (Eg. model_name) while parsing xml using XmlSlurper并且也按照链接进行了操作,但没有任何内容指向有关如何处理克隆属性的文档。
xml:lang属性的最终解决方案: it.attributes()[ '{http://www.w3.org/XML/1998/namespace}郎']
答案 0 :(得分:2)
您所称的“coloned属性”实际上是名称空间中的属性。 XmlSlurper的默认行为是忽略名称空间,因为当你向它请求没有冒号的节点名时,它将找到具有该本地名称的节点而不管名称空间。所以你可能会发现这只是
it.@name
找到您感兴趣的属性。如果这不起作用,那么您需要在从XmlSlurper返回的对象上调用declareNamespace
,以将前缀映射到与之对应的命名空间URI XML文档中的model:
(查找XML中的xmlns:model="http://example.com"
或其他内容)
def xml = new XmlSlurper().parse(...).declareNamespace(
model:"http://example.com")
然后model:name
应该有用。