【发布时间】:2011-05-08 20:59:09
【问题描述】:
我在 db 表中存储了一个带有换行符的 xml 字符串。 在我的 C# 3.5 程序中,我使用 Linq to xml 加载和操作它,然后在 UI 表单的文本框控件中将其显示为字符串。
我需要缩进这个 xml 并在 UI 中显示它时保留换行符/回车符。
我可以缩进,但是如何在 xml 中保留 LF/CR 字符??
这是示例 C# 代码:
XElement rootNode = CreateRootNode();
XElement testXmlNode = XElement.Parse(xmlFromDbWithLFChars);
rootNode.Add(testXmlNode );
var builder = new StringBuilder();
var settings = new XmlWriterSettings()
{
Indent = true
};
using (var writer = XmlWriter.Create(builder, settings))
{
rootNode.WriteTo(writer);
}
xmlString = builder.ToString();
xmlString = xmlString.Replace("
", Environment.NewLine); //Doesnt work
xmlString = xmlString.Replace("
", Environment.NewLine); //Doesnt work
//Heres how the xml should look like in the UI control:
<TestNode
name="xyz"
Id="12">
<Children>
<Child name="abc" location="p" />
</Children>
</TestNode>
【问题讨论】:
-
保留,您的意思是您希望 XML 换行符像 UI 中的换行符一样?
-
还有一个问题:当您说“// 不起作用”时,您的意思是它显示了两个换行符,或者根本没有换行符?
-
Beemer,它不会在 UI 的 xml 中显示任何新行。
-
你能举个例子吗?比如,
xmlFromDbWithLFChars变量中包含的输入值是什么? -
+5?这个问题一团糟。它似乎与 C# 或 XML 没有任何关系,就像它与 UI 控件的关系一样。
标签: c# xml linq-to-xml carriage-return linefeed