Вот XML-файл:Xml удалить узел, элементы дорожат
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Data>
<PageInfo>
<ID>0</ID>
<NUM>5</NUM>
<URL>er.php</URL>
</PageInfo>
<PageInfo>
<ID>1</ID>
<NUM> 12345</NUM>
<URL>/out/out.ViewFolder.php</URL>
</PageInfo>
</Data>
Я попытался много способов (в течение недели в настоящее время), чтобы удалить определенный узел (PageInfo) элемент (ID, NUM, URL) в этот xml-файл.
Есть несколько подходов я пытался:
первый подход:
XmlDocument docc = new XmlDocument();
docc.LoadXml(AppDomain.CurrentDomain.BaseDirectory + "/WebData.xml");
XmlNode nodee = docc.SelectSingleNode("/Data/PageInfo/ID[2]");
nodee.RemoveAll();
второй подход:
XmlDocument document = new XmlDocument();
document.Load(AppDomain.CurrentDomain.BaseDirectory + "/WebData.xml");
XmlNodeList nodes = document.DocumentElement.SelectNodes("/Data/PageInfo");
string ID, NUM, URL;
foreach (XmlNode node in nodes)
{
ID = node.SelectSingleNode("ID").InnerText;
NUM = node.SelectSingleNode("NUM").InnerText;
URL = node.SelectSingleNode("URL").InnerText;
node.RemoveAll();
Console.WriteLine(ID + " " + NUM + " " + URL + "\n");
}
первое решение не вызывает и исключение, но ничего не происходит, второе решение бросает исключение: данные на корневом уровне недопустимы.
Как можно удалить узлы по значению элементов в XML-файле? (LINQ is fine)
Отказ от ответственности: все решения, которые я нашел в StackOverflow, не работают для моего конкретного случая.
Итак, вы хотите удалить узел pageInfo, где ваш id = 1 –
Частично да. Он должен удалять его независимо от выбранного элемента. Я имею в виду, что он должен удалить любым из трех значений (ID, NUM, URL). –