Мне кажется, вы пытаетесь удалить весь элемент XML ...
Если это ваш XML ...
<Xml1>
<body>
<Book>
<Title name="Tom Sawyer" />
<Author value="Mark Twain" />
</Book>
<Book>
<Title name="A Tale of Two Cities" />
<Author value="Charles Dickens" />
</Book>
</body>
</Xml1>
Если вы хотите удалить книгу, вам нужно захватить первый <Book>
узел. Вы можете сделать это с помощью:
XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNodeList nodes = doc.GetElementsByTagName("body");
XmlNode bodyNode = nodes[0];
XmlNode firstBook = bodyNode.ChildNodes[0];
Получив узел «первая книга», вы можете удалить его из узла body, используя:
bodyNode.RemoveChild(firstBook);
Это автоматически повлияет на / обновит переменную XML-документа, поэтому doc
теперь будет иметь только:
<Xml1>
<body>
<Book>
<Title name="A Tale of Two Cities" />
<Author value="Charles Dickens" />
</Book>
</body>
</Xml1>
Если вы хотите захватить и удалить весь body
, вы должны сделать:
XmlNodeList xml1 = doc.GetElementsByTagName("Xml1");
XmlNode xmlNode = xml[0];
xmlNode.RemoveChild(bodyNode);
И переменная doc
будет обновлена и больше не будет содержать элемент body
, а затем может быть сохранена в файловой системе:
doc.Save(fileName);
Где fileName
- полный путь к XML-документу на вашем компьютере.
Лучше всего, мы не используем doc.SelectNodes()
, поэтому нам не нужно беспокоиться об использовании XMLNamespaceManager
.