Для каждого узла найден XML, а не удаление? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть XML-файл с такой же структурой, как указано ниже:

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

То, что я хочу, это проверить внутренний текст узлов, и если он равен определенному значению, скажите «Фрэнк», что он удаляет этот узел. Я попробовал следующее:

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), я вижу, что действительно нахожу узел с Фрэнком в качестве его внутреннего текста. Насколько я понимаю, Node.ParentNode.RemoveChild(Node) означает переход к родительскому элементу текущего узла, затем дочернему элементу этого родительского элемента следует удалить узел <Id> с внутренним текстом «Frank», сохраняя при этом все остальные имена узлов <Id>. Однако он все еще находится в файле XML, когда я открываю его в блокноте. Я также пытался использовать команду «удалить все», «удалить родителя» и «удалить ребенка», но не могу удалить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...