【发布时间】:2010-03-18 13:29:13
【问题描述】:
我需要操作现有的 XML 文档,并从中创建一个新文档,删除一些节点和属性,也许还添加新的,完成此任务的最佳类组是什么?
有很多用于 XML 操作的 .NET 类,我不确定什么是最佳方式。
【问题讨论】:
我需要操作现有的 XML 文档,并从中创建一个新文档,删除一些节点和属性,也许还添加新的,完成此任务的最佳类组是什么?
有很多用于 XML 操作的 .NET 类,我不确定什么是最佳方式。
【问题讨论】:
如果它是一个无法放入内存的非常大的 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");
【讨论】:
使用 Linq to XML You can see the XDocument class here
【讨论】:
如果只是一个转换过程,使用 XML 样式表解析文档可能是最简单的选择。
Here is how to use XSLT in .NET.
和
Here is an introduction to XSLT.
一开始我有点困惑,但现在我几乎使用 XSLT 来完成我所有的 XML 转换。
【讨论】:
如果您有官方架构,则可以使用 XmlSerializer。否则最好使用 XmlDocument、XmlNode、XmlElement 等类。
否则,它还可能取决于您使用 xml 的目的,即标记一些文档、表示对象等。
【讨论】:
XmlSerializer 不处理所有模式。