簡體   English   中英

什么是編寫XML的最快方法

[英]what's the fastest way to write XML

我需要經常創建XML文件,我選擇XmlWrite來完成這項工作,我發現它花了很多時間在像WriteAttributeString這樣的東西上(在某些情況下我需要寫很多屬性),我的問題是有沒有更好的方法來創建xml文件? 提前致謝。

我知道最快的方法是將文檔結構寫為普通字符串並將其解析為XDocument對象:

string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
    <Child>Content</Child>
</Root>";

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

這會產生:

<Inventory>
  <Car ID="1000">
    <PetName>Jimbo</PetName>
    <Color>Red</Color>
    <Make>Ford</Make>
  </Car>
</Inventory>

通過例如FileStream (通過手動創建的代碼)將其直接寫入文件。 這可以非常 ,但也很難維護。 與往常一樣,優化帶有獎品標簽。

另外,不要忘記“ 過早優化是萬惡之源 ”。

XmlSerializer的

您只需要定義要序列化的類的層次結構,即全部。 此外,您可以通過應用於屬性的某些屬性來控制架構。

使用匿名類型和序列化為XML是一種有趣的方法,如此處所述

多少時間......是10毫秒,10秒還是10分鍾...寫一個Xml的整個過程有多少呢?

並不是說你不應該優化,而是因為你需要花多少時間來優化那一點點的過程。 最后,你想要的速度越快,在這種情況下維持的就越復雜(個人意見)。

我個人喜歡使用XmlDocument類型。 在編寫節點時它仍然有點沉重,但是屬性是單行的,並且使用Xmlwrite都更簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM