1
我想删除整个“资料表” Elemt用(在这种情况下,ID 10)将特定ID:删除特定的XML元素
<DataPaths>
<TableData>
<ID>10</ID>
<TablePath>C:\Users\Tom\Test.xls</TablePath>
<TableName>TestName</TableName>
<Mode>TestMode</Mode>
</TableData>
</DataPaths>
我尝试了两种不同的解决方案,我认为我快到了。
解决方案1:
Dim XmldocDel As New XmlDocument()
XmldocDel.Load("" & buildSettingsPath)
Dim node As XmlNode
node = XmldocDel.SelectSingleNode("//DataPaths/TableData[ID = '10']")
If MessageBox.Show("Are you sure you want to delete:", MessageBoxButtons.YesNo) = DialogResult.Yes Then
If node IsNot Nothing Then
node.ParentNode.RemoveChild(node)
'node.ParentNode.RemoveAll()
XmldocDel.Save("" & buildSettingsPath)
Reload()
Else
MessageBox.Show("No node found")
End If
Else
Exit Sub
End If
我在这里得到一个空的异常。
解决方案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
这会干脆什么也不做。
听起来不错,但也导致了零例外:( – TomWayne 2014-10-18 17:55:17
@TomWayne这段代码肯定不会导致空异常。你选中使用'node'一行但是后来会。你的错,从来没有使用变量,可以是'null'没有,如果它们是有效的检查。 – Tomalak 2014-10-18 18:04:04
@TomWayne检查更新的答案 – har07 2014-10-18 21:59:07