我很欣赏dotnet现在有很多机制可以用多种方式处理XML ...
假设我有一个包含XML的字符串....
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Element1>
<Element1_1>
SomeData
</Element1_1>
</Element1>
<Element2>
Some More Data
</Element2>
</root>
删除Element1_1的最简单(最易读)方式是什么?
更新......我可以使用.Net 3.5中提供的任何.Net API:D
答案 0 :(得分:7)
您可以使用哪些API?例如,您可以使用.NET 3.5和LINQ to XML吗?如果是这样,XNode.Remove是你的朋友 - 只需选择Element1_1(以LINQ to XML轻松实现的多种方式)并在其上调用Remove()。
如何选择元素的示例:
XElement element = doc.XPathSelectElement("/root/Element1/Element1_1");
element.Remove();
或者:
XElement element = doc.Descendants("Element1_1").Single().Remove();
答案 1 :(得分:6)
我会用这个:
XmlDocument x = new XmlDocument();
x.LoadXml(SomeXmlString);
foreach (XmlNode xn in x.SelectNodes("//Element1_1"))
xn.ParentNode.RemoveChild(xn);
或与显式XPath相同:
foreach (XmlNode xn in x.SelectNodes("/root/Element1/Element1_1"))
xn.ParentNode.RemoveChild(xn);
或者,甚至更具体:
XmlNode xn = x.SelectSingleNode("/root/Element1/Element1_1");
xn.ParentNode.RemoveChild(xn);