为每个节点找到一个XML,但未删除?

时间:2019-04-03 21:10:28

标签: xml vb.net nodes

我有一个具有以下结构的xml文件:

<Index>
  <Id>Jack</Id>
  <Id>Frank</Id>
  <Id>Bob</Id>
</Index>

我想要的是检查节点的内部文本,如果它等于特定值,请说“ Frank”,它将删除该节点。我尝试过的是以下内容:

Dim MyDoc as xmlDocument = new xmlDocument()
MyDoc.load("C:\my.xml")

For Each Node as XmlNode in MyDoc.selectNodes("Index/*")
  If Node.InnerText=("Frank") Then
    Node.ParentNode.RemoveChild(Node)
  End If
Next

Mydoc.save("C:\my.xml")

如果我将Node.ParentNode.RemoveChild(Node)换成MsgBox(node.InnerText),我会发现确实找到了以Frank为内文的节点。据我了解,Node.ParentNode.RemoveChild(Node)意味着先转到当前节点的父节点,然后再到该父节点的子节点,删除带有内部文本“ Frank”的节点<Id>,同时保留所有其他节点名称{{1 }}。但是,当我在记事本中打开它时,仍然可以在XML文件中找到它。我也尝试过使用全部删除,删除父项和删除子项,但无法删除它。

0 个答案:

没有答案