rename and send all child nodes based on value of element in child node in xslt



My input is:



<Recordset>
<Report_ID>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>b1</name2>
<name3>t1</name3>
<name4>false</name4>
</Record>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>false</name4>
</Record>
</Report_ID>
<Report_ID>
<Record>
<Report_ID>B1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
<Record>
<Report_ID>B1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
</Report_ID>
<Recordset>


Initially I had multiple records under one Report_Id, which I've grouped by Unique Report_Id. Next I want to achieve the below:


Target: If in one Report_ID any of name4 is "false" all the Records under that Report_Id should go and the parent node should be renamed as Report_ID_Complicated, if all the name4 values are true then it should be renamed as Report_ID_Simple. The grouping is fine...There has to be another check condition and the Parent nodes accordingly renamed.



<Recordset>
<Report_ID_Complicated>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>b1</name2>
<name3>t1</name3>
<name4>false</name4>
</Record>
<Record>
<Report_ID>A1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>false</name4>
</Record>
</Report_ID_Complicated>
<Report_ID_Simple>
<Record>
<Report_ID>B1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
<Record>
<Report_ID>B1</Report_ID>
<name1>a1</name1>
<name2>a1</name2>
<name3>a1</name3>
<name4>true</name4>
</Record>
</Report_ID_Simple>
<Recordset>

No comments:

Post a Comment