2017-07-06 3 views
0

grailsのノードオブジェクトに対してxpath liky構文を使用できるかどうか疑問です。別の方法があり、私はこのコードノードオブジェクト上のgrailsでのxpath式の使用

root.data.enrichedData.each { 
    if(it.attributes().get("datatable"=="ROUTING")) { 
    //do some stuff here 
    } 

を使用し、私はノードでこれにアクセスすると

/data/enrichedData[@datatable='ROUTING']/customer 

:このXML構造により

<root> 
    <enrichedData datatable="ROUTING"> 
     <customer>234</customer> 
    </enrichedData> 
    <enrichedData datatable="TABLE2"> 
     <location>aaa</location> 
    </enrichedData> 
</root> 

は、このXPath式を使用することは簡単ですgrailsの特定の属性を持つノードにアクセスするには?

答えて

1

.findと.findAllが動作します。あなたの例に分かりやすくするために別のROUTINGノードを追加しました。

<root> 
    <enrichedData datatable="ROUTING"> 
    <customer>234</customer> 
    </enrichedData> 
    <enrichedData datatable="TABLE2"> 
    <location>aaa</location> 
    </enrichedData> 
    <enrichedData datatable="ROUTING"> 
    <customer>567</customer> 
    </enrichedData> 
</root> 

もちろん、これはもちろん必要ありません。

私は、ルーティングノードを見つけ、そのように、彼らの顧客に操作することができます。

data.enrichedData.findAll{[email protected] == "ROUTING"}.customer.each { println it.text() }

それは遠くチェーンダウン追加.findsを追加することは可能だが、それはあなたの一般的なアイデアを与える必要があります。