Saturday, 18 October 2014

Visual Basic | Delete a specific XML Element



I'd like to delete a whole "TableData" Elemt with a specific ID (ID 10 in this case) from my xml:



<DataPaths>
<TableData>
<ID>10</ID>
<TablePath>C:\Users\Tom\Test.xls</TablePath>
<TableName>TestName</TableName>
<Mode>TestMode</Mode>
</TableData>
</DataPaths>


I tried two different solutions and I think I'm almost there.


Solution 1:



Dim XmldocDel As New XmlDocument()
XmldocDel.Load("" & buildSettingsPath)
Dim node As XmlNode
node = XmldocDel.SelectSingleNode("DataSetPaths/TableInfoData/ID[. = '10']")

If MessageBox.Show("Are you sure you want to delete:", MessageBoxButtons.YesNo) = DialogResult.Yes Then
node.ParentNode.RemoveChild(node)
'node.ParentNode.RemoveAll()

XmldocDel.Save("" & buildSettingsPath)
Reload()

Else
Exit Sub
End If


I'm getting a null Exception here.


Solution 2:



Dim clientNodes = XmldocDel.SelectNodes("//ID")
For Each elem As Xml.XmlElement In clientNodes
If elem.InnerText = "10" Then
elem.ParentNode.RemoveChild(elem)
Exit For
End If
Next


This will simply do nothing.


Please help me :>


No comments:

Post a Comment