You are not losing the hierarchy. XMLList is simply a list of the XML elements 
(kind of like an array). The original XML is not altered. You can walk the 
elements and find their parents and children.

If you need new XML with only certain elements, you need to construct it (or 
destruct it) yourself.

On Apr 21, 2016, at 9:53 PM, mark goldin <[email protected]> wrote:

> I have the following XML:
> <Asset name="Asset 1">
> <Project Name="Health Score - T1 - 5" TemplateID="8" TemplateName="Asset
> Health Template 1" Score="0.98" Hex="0x008000" Color="Green" XAxisScore="
> 0.98" YAxisScore="5.00">
> <Point InputPointID="363" Name="COSINE" Reading="0.31" OutputPointID="343"
> Score="1.00" Hex="0xFFFF00" Color="Yellow"/>
> <Point InputPointID="367" Name="SINE" Reading="0.95" OutputPointID="347"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> </Project>
> <Project ID="36" Name="Health Score - T3 - 41" AssetID="110" TemplateID="20"
> TemplateName="Asset Health Template 3" Score="2.00" Hex="0xFFA500" Color="
> Orange" XAxisScore="2.00" YAxisScore="41.00">
> <Point InputPointID="1242" Name="LAG" Reading="1.00" OutputPointID="1266"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> <Point InputPointID="1246" Name="LEAD" Reading="0.00" OutputPointID="1262"
> Score="0.00" Hex="0x008000" Color="Green"/>
> <Point InputPointID="1230" Name="1TO5" Reading="4.00" OutputPointID="1258"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> </Project>
> <Project ID="43" Name="Health Score - T4 - 64" AssetID="110" TemplateID="21"
> TemplateName="Asset Health Template 4" Score="0.35" Hex="0x008000" Color="
> Green" XAxisScore="0.35" YAxisScore="64.00">
> <Point InputPointID="1689" Name="COSINE" Reading="-0.43" OutputPointID="1713
> " Score="0.00" Hex="0x008000" Color="Green"/>
> <Point InputPointID="1709" Name="SINE" Reading="-0.90" OutputPointID="1717"
> Score="0.00" Hex="0x008000" Color="Green"/>
> <Point InputPointID="1697" Name="LAG" Reading="1.00" OutputPointID="1729"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> <Point InputPointID="1701" Name="LEAD" Reading="0.00" OutputPointID="1733"
> Score="0.00" Hex="0x008000" Color="Green"/>
> </Project>
> </Asset>
> 
> If I filter it like this:
> XML..Project.(@TemplateID == 8);
> I get:
> <Project Name="Health Score - T1 - 5" TemplateID="8" TemplateName="Asset
> Health Template 1" Score="0.98" Hex="0x008000" Color="Green" XAxisScore="
> 0.98" YAxisScore="5.00">
> <Point InputPointID="363" Name="COSINE" Reading="0.31" OutputPointID="343"
> Score="1.00" Hex="0xFFFF00" Color="Yellow"/>
> <Point InputPointID="367" Name="SINE" Reading="0.95" OutputPointID="347"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> </Project>
> 
> which is correct but I am losing the hierarchy.
> 
> What I expect is:
> <Asset name="Asset 1">
> <Project Name="Health Score - T1 - 5" TemplateID="8" TemplateName="Asset
> Health Template 1" Score="0.98" Hex="0x008000" Color="Green" XAxisScore="
> 0.98" YAxisScore="5.00">
> <Point InputPointID="363" Name="COSINE" Reading="0.31" OutputPointID="343"
> Score="1.00" Hex="0xFFFF00" Color="Yellow"/>
> <Point InputPointID="367" Name="SINE" Reading="0.95" OutputPointID="347"
> Score="3.00" Hex="0xFF0000" Color="Red"/>
> </Project>
> </Asset>
> 
> Any idea how to do that?
> 
> Thanks

Reply via email to