[英]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
(通過手動創建的代碼)將其直接寫入文件。 這可以非常快 ,但也很難維護。 與往常一樣,優化帶有獎品標簽。
另外,不要忘記“ 過早優化是萬惡之源 ”。
您只需要定義要序列化的類的層次結構,即全部。 此外,您可以通過應用於屬性的某些屬性來控制架構。
使用匿名類型和序列化為XML是一種有趣的方法,如此處所述
多少時間......是10毫秒,10秒還是10分鍾...寫一個Xml的整個過程有多少呢?
並不是說你不應該優化,而是因為你需要花多少時間來優化那一點點的過程。 最后,你想要的速度越快,在這種情況下維持的就越復雜(個人意見)。
我個人喜歡使用XmlDocument
類型。 在編寫節點時它仍然有點沉重,但是屬性是單行的,並且使用Xmlwrite都更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.