2010-08-04 107 views
0

我正在使用XmlWriter在.Net中保存XmlDocument。但是,所有具有InnerText的元素都使用周圍的回車符來編寫。使用System.Xml.XmlWriter在xml元素中寫入InnerText時避免回車

我試過使用XmlWriterSettings來避免寫這些字符,但沒有運氣呢。

這用一塊代碼:

 XmlDocument outXml = new XmlDocument(); 
     outXml.AppendChild ....... 
     XmlWriterSettings sets = new XmlWriterSettings(); 
     sets.Encoding = encoding; 
     sets.Indent = true; 
     XmlWriter xwriter = XmlWriter.Create(file, sets); 
     outXml.Save(xwriter); 
     xwriter.Close(); 

XML輸出是這樣的:

<String Id="msierrXmlFileFailedSave" Overridable="yes"> 
    Fehler beim Speichern der Einstellungen-Datei. 
    </String> 

應該像所需的XML輸出:

<String Id="msierrXmlFileFailedSave" Overridable="yes">Fehler beim Speichern der Einstellungen-Datei.</String> 

是否有一種避免在元素內寫入回車符的方法?

PD:我看到有關此問題的opposite question,但該解決方案不適用於此情況。

在此先感謝。

Allan.c

+0

可能重複的[XMLDocument.Save在元素爲空時將返回小車添加到XML](http://stackoverflow.com/questions/19258810/xmldocument-save-adds-return-carriages-to-xml-when -elements-are-blank) – Alex 2014-12-02 10:50:30

回答

1

您將要調用保存之前設置XmlDocument.PreserveWhitespace屬性。另一種選擇是使用CData部分,而不是內部文本,其中元素的文本內容需要完全保留。

從文檔:

如果PreserveWhitespace之前 負載或loadXML的叫,空白 節點被保留爲true;否則,如果 此屬性爲false,則顯着 空白被保留,空白 不是。

如果PreserveWhitespace在 之前爲true,則調用保存時, 文檔中的空白將保留在輸出中; 否則,如果此屬性爲false,則 XmlDocument會自動縮進輸出。

+0

非常好,它解決了這個問題。 – 2010-08-04 12:09:40