簡體   English   中英

帶有自定義格式的 C# XmlDocument

[英]C# XmlDocument with custom formatting

這段代碼:

XmlNode columnNode = null;                               
columnNode = xmlDoc.CreateElement("SYSID");
columnNode.InnerText = ""; // Empty string
newRowNode.AppendChild(columnNode);

...做這個:

<SYSID>
</SYSID>

當字符串為空時,我想要這個:

<SYSID></SYSID>

有什么解決辦法嗎?

如果您有另一個需要該格式的工具,則另一個工具是錯誤的 - 它無法讀取 XML。 因此,如果您可以控制其他工具,我建議您修復它,而不是試圖強制您的代碼匹配它。

如果您無法修復其他工具...

如果您只是構建一個 Document 以將其寫出到磁盤,那么您可以使用流並直接自己編寫元素(作為簡單文本)。 這將比使用 XmlDoc 更快(並且可能更容易)。

作為對此的改進,您可以使用 XmlWriter 來寫入元素,但是當您要寫入空元素時,請將原始文本寫入流(即 writer.WriteRaw("<SYSID></SYSID>\\n ")) 以便您控制這些特定元素的格式。

如果您需要構建內存中的 XmlDocument,那么在很大程度上您必須忍受當您要求它序列化到磁盤時使用的格式(除了 PreserveWhitespace 等基本設置,您要求文檔處理存儲信息,因此您對 XmlDocument 封裝的功能失去了很多控制)。 在這種情況下,我能想到的最佳建議是將 XmlDocument 寫入 MemoryStream,然后對該內存流進行后處理以從空元素中刪除換行符。 (呸!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM