【发布时间】:2015-08-21 12:53:19
【问题描述】:
这里是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>
我已经尝试了很多方法(现在已经一个星期了)在这个 xml 文件中按元素(ID、NUM、URL)删除某些节点(PageInfo)。
我尝试过的方法很少:
第一种方法:
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 很好)
免责声明:我在 StackOverflow 上找到的所有解决方案都不适用于我的某些情况。
【问题讨论】:
-
所以你想删除你的 id = 1 的 pageInfo 节点
-
部分是的。无论抛出什么元素,它都应该删除它。我的意思是它应该通过三个值(ID、NUM、URL)中的任何一个来删除
。