2012-05-14 24 views
0

所以我試圖創建窗體的一個大的XML文件:寫作元素添加到XML文件中的C#

<xml> 
    <element id ="1">1</element> 
    <element id ="2">2</element> 
    <element id ="3">3</element> 
    ... 
    <element id ="100000000">100000000</element> 
</xml> 

使用C#。我似乎無法找到一種方法來格式化元素以在聲明中包含id(我根本不熟悉XML)。

有誰知道我怎麼可以在C#中做到這一點?

這裏是我的嘗試:

using System; 
using System.Xml; 
using System.Linq; 
using System.Text; 

namespace BigXML 
{ 
    class Class1 
    { 

     static void Main(string[] args) 
     { 

      // Create a new file in C:\\ dir 

      XmlTextWriter textWriter = new XmlTextWriter("C:\\Users\\username\\Desktop\\testBigXmFile.xml", null); 
      textWriter.Formatting = Formatting.Indented; 
      textWriter.Indentation = 3; 
      textWriter.IndentChar = ' '; 
      // Opens the document 

      textWriter.WriteStartDocument(true); 

      textWriter.WriteStartElement("xml"); 
      // Write comments 
      for (int i = 0; i < 100000000; i++) 
      { 
       textWriter.WriteElementString("element id =" + '"' + i.ToString() + '"', i.ToString()); 
      } 

      textWriter.WriteEndElement(); 
      textWriter.WriteEndDocument(); 

      textWriter.Close(); 

     } 

    } 
} 

謝謝大家,有一個愉快的一天。

回答

5

您需要編寫屬性「id」。這樣做有它像XmlWriter.WriteAttributeString

for (int i = 0; i < 100000000; i++) 
{ 
    textWriter.WriteStartElement("book"); 
    writer.WriteAttributeString("id", i.ToString());     
    textWriter.WriteString(i.ToString()); 
    textWriter.WriteEndElement(); 
} 
0

還檢查了System.Xml.Linq的幾種方法。你可以像使用XDocument一樣執行相同的操作

XDocument xdocfoo = new XDocument(new XElement("xml")); 

for (int i = 0; i < 100; i++) 
{ 
    XElement ele = new XElement("element"); 
    ele.SetAttributeValue("id", i.ToString()); 
    ele.Value = i.ToString(); 
    xdocfoo.Root.Add(ele); 
} 

xdocfoo.Save(@"c:\foo.xml"); 
+1

我不會在內存中創建'100000000' XElements。 –