在.NET中操作XML的最佳方法

15

我需要操作一个现有的XML文档,并从中创建一个新文档,删除一些节点和属性,可能还要添加新的节点和属性。哪些类是最好的选择来完成这个任务?

.NET提供了许多用于XML操作的类,我不确定最佳的方法是什么。

4个回答

13
如果XML文件太大无法放入内存,则应使用XmlReader/XmlWriter。如果不是,LINQ to XML非常易于使用。如果您没有.NET 3.5,则可以使用XmlDocument
这里有一个删除节点的示例:
using System.Xml.Linq;
using System.Xml.XPath;

var doc = XElement.Load("test.xml");
doc.XPathSelectElement("//customer").Remove();
doc.Save("test.xml");

谢谢!这个能处理内存中的XML字符串吗,还是只能处理文件? - juan
无论XML来自何处,它都应该能够正常工作。您应该能够调用XElement.Parse()并将XML作为字符串传递。 - Dave Van den Eynde
如果您想处理XML命名空间,特别是默认命名空间,请查看此处:http://stackoverflow.com/questions/25396140/use-xpath-with-xml-namespace - smwikipedia

4

2

1
如果您有官方架構,可以使用XmlSerializer。否則最好使用XmlDocument,XmlNode,XmlElement等類。另外,也可能取決於您使用xml的目的,例如標記某些文件,表示對象等。

@Kurt:XmlSerializer 无法处理所有模式。 - John Saunders

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接