尝试查找XML文档中的某个节点时,我遇到了名称空间问题。这是我正在使用的代码:
简化的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<map:components>
<map:generators>
...
<map:generator name="FinsXMLGenerator"/>
</map:generators>
...
我正在尝试接收以下节点:
<map:generator name="FinsXMLGenerator"/>
使用以下DOMCategory闭包:
def closure = { sitemap ->
def result = sitemap.'map:sitemap'.'map:components'.'map:generators'.'map:generator'.'@name'.find({
it.text() == 'FinsXMLGenerator'
});
return result;
}
我在XML中编写了很多没有名称空间的闭包,这些闭包很好用。但命名空间会破坏一切 我没有得到任何错误,结果只是null。任何人都可以帮我修复路径 - 例如。
sitemap.'map:sitemap'...
我正在使用Groovy。
答案 0 :(得分:1)
尝试:
def node = use( DOMCategory ) {
sitemap.'map:components'.'map:generators'.'map:generator'.find {
it.getAttribute( 'name' ) == 'FinsXMLGenerator'
}
}