0

尝试在 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 中编写了很多这样的没有名称空间的闭包,它们工作得非常好。但是名称空间会破坏一切。
我没有收到任何错误,结果只是空值。任何人都可以帮我修复路径 - 例如

sitemap.'map:sitemap'...

我正在使用 Groovy。

4

1 回答 1

1

尝试:

def node = use( DOMCategory ) {
  sitemap.'map:components'.'map:generators'.'map:generator'.find {
    it.getAttribute( 'name' ) == 'FinsXMLGenerator'
  }
}
于 2013-04-26T09:36:14.957 回答