1
Предположим, у меня есть XML:Groovy найти узлы, использующие GPATH с certian ребенка считать и выражение
<?xml version="1.0" encoding="UTF-8"?>
<data>
<level0 id="1" t="0">
<level1 id="lev1id01" att1="2015-05-12" val="12" status="0"/>
<level1 id="lev1id02" att1="2015-06-13" val="13" status="0"/>
<level1 id="lev1id03" att1="2015-07-10" val="13" status="0"/>
</level0>
<level0 id="2" t="0">
<level1 id="lev1id11" att1="2015-05-12" val="121" status="0"/>
<level1 id="lev1id12" att1="2015-06-13" val="132" status="0"/>
<level1 id="lev1id13" att1="2015-07-11" val="113" status="0"/>
</level0>
<level0 id="2" t="1">
<level1 id="lev1id21" att1="2015-05-12" val="121" status="0"/>
<level1 id="lev1id22" att1="2015-06-13" val="132" status="0"/>
<level1 id="lev1id23" att1="2015-07-11" val="113" status="0"/>
<level1 id="lev1id23" att1="2015-07-11" val="113" status="0"/>
</level0>
</data>
Я хочу, чтобы все level0
узлы (используя GPATH), которые являются:
- Если
level0/@t="0"
затем выберите этот узел (level0), только если все егоlevel1
c ети имеет@status="0"
- Если
level0/@t!="0"
затем выбрать этот узел (level0) только если последнийlevel1
ребенок имеет@status="0"
. Когда я говорю последний, я имею в виду узелlevel1
с максимальным значением в@att1
(при условии, что@att1
содержит дату в форматеyyyy-mm-dd
).
С XPath Я хотел бы использовать такие функции, как максимум() и COUNT(), но я не могу, как это может быть сделано с помощью GPATH.
Благодаря