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 で名前空間を使用せずに、このような多くのクロージャを作成しましたが、完全に正常に動作します。しかし、名前空間はすべてを破壊します。
エラーは発生しません。結果は null です。誰でもパスを修正するのを手伝ってもらえますか-例

sitemap.'map:sitemap'...

私はグルービーを使用しています。

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 に答える