2012-12-03 143 views
0

我正在使用的XmlWriter並得到以下錯誤:

Invalid name character in 'news:news'. The ':' character, hexadecimal value 0x3A, cannot be included in a name. 

沒有任何人有任何的想法是什麼原因造成的?這裏是我的代碼:

using (XmlWriter writer = XmlWriter.Create("moo.xml")) 
      {    

       writer.WriteStartDocument(); 
       writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9"); 
       writer.WriteAttributeString("xmlns", "news", null, "http://www.google.com/schemas/sitemap-news/0.9"); 


       writer.WriteStartElement("url"); 
       writer.WriteElementString("loc", "http://www.monkeys.co.uk"); 

       writer.WriteStartElement("news:news"); 
       writer.WriteEndElement(); 

       writer.WriteEndElement(); 



       writer.WriteEndElement(); 
       writer.WriteEndDocument(); 

      } 

回答

4

您需要使用的WriteStartElement採用兩個參數過載:

writer.WriteStartElement("news", "http://www.google.com/schemas/sitemap-news/0.9"); 
//    Tag ----^  ^--- Namespace 
+0

我在哪裏使用? – Funky

+0

@Funky:而不是'writer.WriteStartElement(「news:news」);'。它會產生這個標籤:''。由於該URI已被稱爲作者的名稱空間,因此它使用爲該URI註冊的前綴。 –

+1

@Funky:順便說一句:是否有一個特定的原因,你爲什麼不使用XmlDocument或XDocument(首選)?通常,XmlWriter僅用於存在*巨量*數據的情況,這些數據會一次存儲在內存中。 –

相關問題