XElement.Save
實際上並我需要什麼,但它開頭的文件:如何在使用XElement.Save時省略xml聲明?
<?xml version="1.0" encoding="utf-8"?>
是否有辦法防止這種情況?
我完成創建我的XElement
後應該使用其他類型保存嗎?
或者我應該跳過XmlReader.Read
那條線嗎?因爲這樣做,我覺得它更脆弱,因爲我假設第一行始終是這個XML聲明。
完成此操作最簡單的方法是什麼?
XElement.Save
實際上並我需要什麼,但它開頭的文件:如何在使用XElement.Save時省略xml聲明?
<?xml version="1.0" encoding="utf-8"?>
是否有辦法防止這種情況?
我完成創建我的XElement
後應該使用其他類型保存嗎?
或者我應該跳過XmlReader.Read
那條線嗎?因爲這樣做,我覺得它更脆弱,因爲我假設第一行始終是這個XML聲明。
完成此操作最簡單的方法是什麼?
XElement.ToString()
不會將XML聲明添加到輸出中。但我不明白爲什麼XmlReader
或任何XML解析器在標準的XML聲明中會遇到麻煩。
謝謝,當我使用閱讀器時,它會拋出一個異常說,無效的數據根,第1行等。 – 2011-02-26 00:12:37
我見過由文件開始處的字節順序標記造成的非常類似的錯誤。可能值得調查。 – Jon 2012-01-12 22:49:23
使用XmlWriter會給你這個能力。
Microsoft文章:Serializing with an XML Declaration介紹瞭如何控制序列化是否生成XML聲明。
這個例子寫的例子xmlTree數據到文本文件data.xml中沒有報關行,還包括縮進格式:
XElement xmlTree = new XElement("Root",
new XAttribute("Attribute1", 1),
new XElement("Child1", 1),
new XElement("Child2", 2)
);
using (var writer = XmlWriter.Create("data.xml", new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true }))
xmlTree.Save(writer);
爲什麼你要離開了這一點? – 2011-02-26 02:24:08
謝謝約翰,現在我不需要我認爲,因爲你閱讀XML的方式工作。否則,當我在另一個問題中發佈的方法發生錯誤時。 – 2011-02-26 02:31:53