使用C#不清楚XML结构的管理

时间:2012-09-17 10:26:38

标签: c# xml

我正在尝试创建一个XML结构(不是从/向文件读/写,只是逻辑部分)。我真的很困惑如何去做和使用什么。在互联网上查看后,我看到了两个候选类:XmlDocumentXDocument(及其对节点,元素,属性等的相应引用)。

一个人必须被弃用,但我已经检查了相当近期的帖子(2010年甚至2011年),他们仍在建议使用这两种变体的代码。此外,Google检查XDocument仅提供XmlDocument带来的点击量的一小部分。

当整理那部分时,我已经看到了很多关于如何构建非常简单的 XML结构的不同示例。我想这种方法取决于建议者的能力水平,所以我直接问 - 要使用哪些类和语法?

3 个答案:

答案 0 :(得分:0)

有两种构建XML文档的方法:使用一个将整个文档保存在内存中的类或一个单向XML编写器。

  • XDocument是构建适合内存的XML文档的推荐方法。它不适用于非常大的XML文件。 XmlDocument尚未标记为已弃用,但我怀疑它可能会在未来版本的框架中出现。

  • 另一方面,
  • XmlWriter适合构建无法适应内存的大型XML文档。与XDocument相反,这是一个单向编写器,一旦编写了节点,就不能再返回并修改它。

还有第三种构建XML文档的方法,它属于第一类,也就是.NET类型的XML序列化。有几个类允许您实现DataContractSerializerXmlSerializer

答案 1 :(得分:0)

性能存在差异!

阅读Performance: LINQ to XML vs XmlDocument vs XmlReader

Linq to XML比XmlDocument

更快

答案 2 :(得分:0)

几周前,我遇到了同样的问题。显然,您不能信任数字 - XmlDocument获得的计数大约是XDocument 的20倍,但前者已被弃用,后者将被使用。

至于对这种现象的解释,我假设很多代码是使用已弃用的类创建的(根据那个时期的标准,使用它们是巨大的方便)。多年以后,人们正在使用“什么在起作用”,却没有意识到“街区有一个新生儿”。

这是一个关于如何创建逻辑XML结构的简单示例。

XDocument xml = new XDocument(
  new XElement("main",
    new XElement("first", "---"),
    new XElement("second",
      new XElement("first sub", "---"),
      new XElement("second sub", "---"))
));

有关此主题的更多信息,请参阅here