我在数据库表中存储了一个带有换行符的 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>
最佳答案
你想要做的是在 XmlWriter 上设置格式设置,所以改变你的行:
var settings = new XmlWriterSettings()
{
Indent = true
};
像这样:
var settings = new XmlWriterSettings()
{
Indent = true,
IndentChars = "\n",
NewLineOnAttributes = true
};
关于c# - 在 xml 中保留特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161557/