我有下一个XML
文件
<files>
<mainFile num="333">
<DE>
<file>
</file>
<file>
</file>
</DE>
</mainFile>
<mainFile num="444">
<DE />
</mainFile>
<mainFile num="555">
<DE>
<file>
</file>
<file>
</file>
<file>
</file>
</DE>
</mainFile>
<mainFile num="666">
<TLL>
</TLL>
</mainFile>
</files>
我想从每个节点<mainFile num="<number>">
中删除<DE>
内的所有内容 - 只有在它被称为<DE>
的情况下,如果内部的其他节点如<TLL>
在示例中,请勿触摸它。
我的想法是得到这样的东西:
<files>
<mainFile num="333"> </mainFile>
<mainFile num="444"> </mainFile>
<mainFile num="555"> </mainFile>
<mainFile num="666">
<TLL>
<TLL>
</mainFile>
</files>
任何想法如何实施?
我试过了:
var xmlString = XElement.Parse(xmlString);
xmlString.XPathSelectElements("//DE").Remove();
xmlString .Element("DE").Remove();
答案 0 :(得分:0)
您可以尝试这样的事情:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
XmlNodeList nodeList;
XmlNode root = doc.DocumentElement;
nodeList=root.SelectNodes("descendant::mainFile");
foreach (XmlNode n in nodeList)
{
XmlNodeList des = n.SelectNodes("descendant::DE");
foreach (XmlNode de in nodeList)
{
de.ParentNode.RemoveChild(de);
}
}