Help deleting multiple XML nodes
Sorry for the bother, but I did a search of the forums and did not find an exact solution to my problem. Google wasn't much help either.
I need to loop through an XML structure and delete multiple nodes where an attribute, EnclosureID="1".
The problem with my current code is that the first element is deleted but not the rest. I am brand new to XML so I am obviously doing something wrong. I will post my code and part of the XML below.
I would really appreciate some help with this.
Partial XML:
<?xml version="1.0" encoding="utf-8"?>
<EnclosureSeriesLinks>
<EnclosureSeries EnclosureID="1" SeriesID="1" SeriesName="0000 Frameless Series" />
<EnclosureSeries EnclosureID="1" SeriesID="4" SeriesName="6000 Series" />
<EnclosureSeries EnclosureID="1" SeriesID="6" SeriesName="9000 Series" />
<EnclosureSeries EnclosureID="1" SeriesID="7" SeriesName="F000 Frameless Series" />
<EnclosureSeries EnclosureID="1" SeriesID="10" SeriesName="P000 Provincial Series" />
<EnclosureSeries EnclosureID="1" SeriesID="11" SeriesName="Q000 Frameless Series" />
<EnclosureSeries EnclosureID="1" SeriesID="12" SeriesName="Steam Series" />
<EnclosureSeries EnclosureID="2" SeriesID="1" SeriesName="0000 Frameless Series" />
<EnclosureSeries EnclosureID="2" SeriesID="4" SeriesName="6000 Series" />
</EnclosureSeriesLinks>
Current Code:
Dim EnclosureSeries As XmlDocument = New XmlDocument
Dim esindex As Integer = 0
EnclosureSeries.Load("c:\csd2007data\enclosureseri es.xml")
For Each myNode As XmlNode In EnclosureSeries.DocumentElement.ChildNodes
If myNode.Attributes("EnclosureID").Value.ToString = sdeleted Then
myNode.ParentNode.RemoveChild(EnclosureSeries.Docu mentElement.ChildNodes(esindex))
'MsgBox(myNode.Attributes("EnclosureID").Value.ToS tring)
End If
esindex += 1
Next
EnclosureSeries.Save("c:\csd2007data\enclosureseri es.xml")
Only the very first record is deleted and I want to delete all items where EnclosureID="1".
The resulting XML is
<EnclosureSeries EnclosureID="1" SeriesID="4" SeriesName="6000 Series" />
<EnclosureSeries EnclosureID="1" SeriesID="6" SeriesName="9000 Series" />
<EnclosureSeries EnclosureID="1" SeriesID="7" SeriesName="F000 Frameless Series" />
<EnclosureSeries EnclosureID="1" SeriesID="10" SeriesName="P000 Provincial Series" />
<EnclosureSeries EnclosureID="1" SeriesID="11" SeriesName="Q000 Frameless Series" />
<EnclosureSeries EnclosureID="1" SeriesID="12" SeriesName="Steam Series" />
<EnclosureSeries EnclosureID="2" SeriesID="1" SeriesName="0000 Frameless Series" />
<EnclosureSeries EnclosureID="2" SeriesID="4" SeriesName="6000 Series" />
</EnclosureSeriesLinks>
|