删除XML文件中的节点?

时间:2013-05-29 10:08:02

标签: xml vb.net

我有xml文件,想要删除一些节点:

<group>
  <First group>
  </First group>
  <Second group>
    <Name>
    </Name>
    <Name>
    </Name>
    <Name>
    </Name>
  </Second group>
</group>

我想删除节点Name,因为稍后我想创建新节点。

以下是我拥有的代码:

Dim doc As New XmlDocument()
Dim nodes As XmlNodeList
doc.Load("doc.xml")
nodes = doc.SelectNodes("/group")
Dim node As XmlNode

For Each node In nodes
  node = doc.SelectSingleNode("/group/Second group/Name")
  If node IsNot Nothing Then
    node.ParentNode.RemoveNode(node)
    doc.Save("doc.xml")
  End If
Next

2 个答案:

答案 0 :(得分:3)

部分问题是XML无效。

Naming Elements and Attributes

元素名称不能包含空格。

假设有效的XML元素名称,即:First_group,Second_group,以下代码将从Second_group中删除所有子元素

Dim doc As New XmlDocument()
Dim nodes As XmlNodeList
doc.Load("c:\temp\node.xml")
nodes = doc.SelectNodes("/group/Second_group")

For Each node As XmlNode In nodes
    If node IsNot Nothing Then
        node.RemoveAll()
          doc.Save("c:\temp\node.xml")
    End If
Next

或LINQ to XML:

Dim doc As XDocument = XDocument.Load("c:\temp\node.xml")
doc.Root.Element("Second_group").Elements("Name").Remove()
doc.Save("c:\temp\node.xml")

答案 1 :(得分:0)

尝试使用RemoveChild而不是RemoveNode。