【发布时间】:2013-04-02 21:44:39
【问题描述】:
如果我有这样的 GPath:
<Apple>
<Mango>
<id>5 </id>
</Mango>
<Mango>
<id>10 </id>
</Mango>
</Apple>
要获得一个 ID 为 5 的 Mango,我会这样做,
GPathResult result = Apple.find{
it.Mango.id=5
}
但如果我的 GPath 是递归的。我的意思是,一个苹果可以有一个芒果。芒果里面又可以放一个苹果。例如:
<Apple>
<Mango>
<id>10</id>
<Apple>
<Mango>
<id>5 </id>
</Mango>
</Apple>
</Mango>
</Apple>
如何获得 id 为“5”的芒果。不管递归,GPath 可能是(ID 为“5”的芒果可以处于任何递归级别),我需要找到 ID 为“5”的芒果。如何通过 find 闭包来实现这一点?
提前谢谢
【问题讨论】:
-
似乎是 stackoverflow.com/questions/6185746/groovy-map-find-recursive 的骗子,答案相当不错。
-
嗨,比尔,我是一个时髦的新手......并且不太明白那个线程中的答案。我们可以不使用地图做同样的事情吗?
-
你应该可以,结构应该是相同的,但我还没有确定。试一试——复制代码,首先让它工作,然后将类型更改为你想要的,看看你是否能让它工作。即使它没有直接帮助,它也应该教给你足够的知识,让你自己解决问题。
标签: xml parsing loops groovy gpath