2013-11-24 106 views
0

動態我試圖通過C#代碼創建xml文件,但得到以下異常:XMLException未處理'/'是一個意外的標記。預期的標記是'='。行4,位置18

XMLException未處理'/'是一個意外的標記。預期的標記是'='。 4號線,18位

這裏是我的代碼:

string docAuthor = document.Info.Author.ToString(); 
string docCreationDate = document.Info.CreationDate.ToString(); 

StringWriter stringwriter = new StringWriter(); 
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringwriter); 
xmlTextWriter.Formatting = Formatting.Indented; 
xmlTextWriter.WriteStartDocument(); 
xmlTextWriter.WriteStartElement("root"); 
xmlTextWriter.WriteStartElement("information"); 
xmlTextWriter.WriteElementString("Author Name", docAuthor.ToString()); 
xmlTextWriter.WriteElementString("Creation Date", docCreationDate.ToString()); 
xmlTextWriter.WriteEndElement(); 
xmlTextWriter.WriteEndDocument(); 
XmlDocument docSave = new XmlDocument(); 
docSave.LoadXml(stringwriter.ToString()); 
//write the path where you want to save the Xml file 
docSave.Save(@"C:\Information.xml"); 
+0

僅供參考,您不應該使用'new XmlTextReader()'或'new XmlTextWriter()'。自.NET 2.0以來,它們已被棄用。改爲使用'XmlReader.Create()'或'XmlWriter.Create()'。 –

回答

3

XML elements cannot have spaces的名字。刪除Author NameCreation Date之間的空格。它應該是 -

xmlTextWriter.WriteElementString("AuthorName", docAuthor.ToString()); 
xmlTextWriter.WriteElementString("CreationDate", docCreationDate.ToString()); 
+0

是的,你是對的,感謝它現在的工作。 – user1133737

+0

你介意接受這個答案嗎?如果它解決了你的查詢呢? –

0

需要調用Flush()清除作家的內部緩衝區。
在此之前,支持StringWriter將有一個半寫文檔。

但是,你不應該這樣做;您應該直接保存到FileStream

+0

同意,創建一個XmlDocument來加載xml然後將其保存到一個文件似乎很單調。 – kevin

相關問題