在节点对象的grails中使用xpath表达式

时间:2017-07-06 07:06:46

标签: xml grails xpath

我想知道是否可以在grails中的节点对象上使用xpath liky语法。

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

使用这个xml结构,使用这个xpath表达式很简单:

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

当我使用节点访问它时,我使用此代码

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

是否有其他方法可以访问grails中具有特定属性的节点?

1 个答案:

答案 0 :(得分:1)

.find和.findAll工作。为清晰起见,我在您的示例中添加了另一个ROUTING节点:

alert(this.component.Name)

但这当然没有必要。

然后我可以找到ROUTING节点,并对其客户进行操作,如下:

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

可以在链条的下方添加额外的.finds,但这应该给你一般的想法。