什么是编写XML的最快方法

我需要经常创建XML文件,我选择XmlWrite来完成这项工作,我发现它花了很多时间在WriteAttributeString之类的东西上(在某些情况下我需要写很多属性),我的问题是有没有更好的方法来创建xml文件? 提前致谢。

我知道最快的方法是将文档结构写为普通字符串并将其解析为XDocument对象:

string str = @"   Content "; XDocument doc = XDocument.Parse(str); Console.WriteLine(doc); 

现在,您将拥有一个结构化且随时可以使用的XDocument对象,您可以在其中填充数据。 此外,您甚至可以将完全结构化和填充的XML解析为字符串并从那里开始。 您也可以使用这样的结构化XElements:

 XElement doc = new XElement("Inventory", new XElement("Car", new XAttribute("ID", "1000"), new XElement("PetName", "Jimbo"), new XElement("Color", "Red"), new XElement("Make", "Ford") ) ); doc.Save("InventoryWithLINQ.xml"); 

这会产生:

   Jimbo Red Ford   

XmlSerializer的

您只需要定义要序列化的类的层次结构,即全部。 此外,您可以通过应用于属性的某些属性来控制架构。

通过例如FileStream (通过手动创建的代码)将其直接写入文件。 这可以非常 ,但也很难维护。 与往常一样,优化带有奖品标签。

另外,不要忘记“ 过早优化是所有邪恶的根源 ”。

使用匿名类型和序列化为XML是一种有趣的方法,如此处所述

多少时间……是10毫秒,10秒还是10分钟……写一个Xml的整个过程有多少呢?

并不是说你不应该优化,而是你要花多少时间来优化那个过程的一点点。 最后,你想要的速度越快,在这种情况下维护就越复杂(个人意见)。

我个人喜欢使用XmlDocument类型。 在编写节点时它仍然有点沉重,但是属性是单行的,并且使用Xmlwrite都更简单。