2015-10-09 61 views
1

我想在父節點之前的Xml文件的開頭寫入字符串文本。請告訴我如何編寫字符串文本。在Xml節點之上。將字符串文本寫入Xml文件

{ 
    XmlTextWriter writer = new XmlTextWriter("product.xml", System.Text.Encoding.UTF8); 
    //string x="<!-- sitemap-generator-url="http://www.auditmypc.com/free-sitemap-generator.asp --> "; 
    string y= "<!-- This sitemap was created using the free tool found here: http://www.auditmypc.com/free-sitemap-generator.asp -->"; 
    string z= "<!-- Audit My PC also offers free security tools to help keep you safe during internet travels -->"; 

    writer.WriteStartDocument(true); 
    writer.Formatting = Formatting.Indented; 
    writer.Indentation = 2; 
    writer.WriteStartElement("urlset"); 
    createNode("1", "url 1", writer); 
    createNode("2", "url 2", writer); 
    createNode("3", "url 3", writer); 
    createNode("4", "url 4", writer); 
    writer.WriteEndElement(); 
    writer.WriteEndDocument(); 
    writer.Close(); 
    MessageBox.Show("XML File created ! "); 
} 

private void createNode(string pID, string pName, XmlTextWriter writer) 
{ 
    writer.WriteStartElement("url"); 
    writer.WriteStartElement("loc"); 
    writer.WriteString(pID); 
    writer.WriteEndElement(); 

    writer.WriteEndElement(); 
} 
+0

你爲什麼要標記這個asp.net?如果他們不瞭解任何關於asp.net的知識,你可能會引導人們回答你的問題。這與此無關。 –

+0

對於這個問題......爲什麼不用xml來標記它,這會讓人們*知道誰在使用xml。 –

回答

0

您可以使用XmlTextWriter.WriteComment方法:

XmlTextWriter writer = new XmlTextWriter("product.xml", System.Text.Encoding.UTF8); 
writer.WriteStartDocument(true); 
writer.WriteComment("This sitemap was created using the free tool found here: http://www.auditmypc.com/free-sitemap-generator.asp"); 
writer.Formatting = Formatting.Indented; 
writer.Indentation = 2; 
writer.WriteStartElement("urlset"); 

輸出:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!--This sitemap was created using the free tool found here: http://www.auditmypc.com/free-sitemap-generator.asp--> 
<urlset /> 

<?xml ?>標籤應該是第一個,所以我們插入在最上方的地方這條評論。

0

StackOverflow不會讓我評論這個問題,所以我會在這裏發表。

如果XML文件已經存在,則在頂部添加一行的一個選項是將整個文件讀入內存或新的臨時文件,然後重新編寫該文件,從您希望添加到頂部的行開始。以下是前面加上一個行到一個文件中的一些其他職位:

Add a single line to the top of text file

C#: Prepending to beginning of a file

0

其實,你可以做到這一點沒有XML類:

string strContent = null, additionalContent = "<!--AdditionalContent-->"; 
    if (File.Exists(@"yourfile")) 
    { 
     strContent = File.ReadAllText(@"yourfile"); 
     File.WriteAllText(@"yourfile", additionalContent + Environment.NewLine + strContent); 
    } 

注意,這種方法應該用於合理的小文件。否則,您需要以較小的塊讀取文件以適應您的內存。