当前位置:  开发笔记 > Android > 正文

使用DotNet从XML String中删除已知位置的元素的最佳方法?

如何解决《使用DotNet从XMLString中删除已知位置的元素的最佳方法?》经验,为你挑选了2个好方法。

我感谢dotnet现在有很多机制以各种方式处理XML ......

假设我有一个包含XML的字符串....



    
        
            SomeData
        
    
    
        Some More Data
    

删除Element1_1的最简单(最易读)方法是什么?

更新...我可以使用.Net 3.5中提供的任何.Net API:D



1> Jon Skeet..:

您可以使用哪些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();



2> Tomalak..:

我会用这个:

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);

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有