I have xml content like this:
<?xml version="1.0" encoding="UTF-8"?><service>
<rs>
<Id>
<details>
<start>2017-10-07</start>
<startDate>2017-02-02</startDate>
<endDate>2017-03-02</endDate>
<runAs>false</runAs>
<makeVersion>1</makeVersion>
<patch>this is patch</patch>
<parameter>1</parameter>
</details>
</Id>
<person>
<details>
<start>2017-09-07</start>
<startDate>2017-02-02</startDate>
<endDate>2017-03-02</endDate>
<runAs>true</runAs>
<makeVersion>1</makeVersion>
<patch>this is patch</patch>
<parameter>1</parameter>
</details>
</person>
</rs>
<country>
<details>
<start>2017-09-07</start>
<startDate>2017-02-02</startDate>
<endDate>2017-03-02</endDate>
<runAs>true</runAs>
<makeVersion>1</makeVersion>
<patch>this is patch</patch>
<parameter>1</parameter>
</details>
</country>
</service>
and i want to check each start tag value and then update value of runAs i have tried this :
def xml = new XmlParser().parseText(content)
def start=xml.'**'.details.start[0].text();
def run=xml.'**'.details.start[0].text();
if(start!=currentDate && run!='false'){
xml.'**'.details.runAs[0].value="false";
}
else {
xml.'**'.details.find({p->
p.start[0].value= subtractDays(p.start[0].text(),p.parameter[0].text()).toString()
p.runAs[0].value='false';
})
}
def newxml=XmlUtil.serialize(xml)
But it has updated only rs->Id->details->runAs value, what should I change to update every runAs
tag value and in certain case update every start tag values too?