Yeah, seems like it. Is it possible to delete an element from XML at any given level using something like this: delete XML..Project.(@ID != 1234);
Thanks On Thu, Apr 21, 2016 at 2:28 PM Harbs <[email protected]> wrote: > You can’t do that with filtering. You basically want to copy the XML and > get rid of any end nodes which don’t match your check. > > I would probably walk the XML (or a copy of it), and delete the unwanted > nodes. > > On Apr 21, 2016, at 10:25 PM, mark goldin <[email protected]> wrote: > > > I understand I am not altering original XML. What I want is reduce it on > a > > filter but preserve all the nested structure. > > > > On Thu, Apr 21, 2016 at 2:17 PM Harbs <[email protected]> wrote: > > > >> 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 > >> > >> > >
