我想使用c#中的XmlDocument对象在xml节点中存储带换行符的备忘录文本。我可以用简单的内部文本分配来编写它。
看起来如下
<CSScript>
Line 1
...
...
Line n
</CSScript>
但是,我无法阅读,怎么去呢?
答案 0 :(得分:1)
查看PreserveWhitespace
属性。在.Load()
XML数据之前,将其设置为true,如下所示:
string filename = "C:\\myxml.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.Load(filename);
同样,在调用.Save()
之前,将其设置为true:
xmlDoc.SomethingNode.InnerText = "Line 1\r\n...\r\n....";
xmlDoc.PreserveWhitespace = true; // assuming it hasn't already been set to true
xmlDoc.Save(someFileLocation);
请注意,并非所有XML处理器/查看器都会遵循此行为 - 它们可能最终会将其(可能是错误的)视为无关紧要的空白并将其剥离,具体取决于文档的结构(例如,MSIE可能会执行此操作)如果您打开文档以在浏览器中查看它,但实际上没有更改文本源)。另请注意,如果您使用LINQ to XML,则可以使用LoadOptions.PreserveWhitespace
和SaveOptions.DisableFormatting
来达到类似效果。