将XML节点的外部文本放在WPF文本框中非常简单.但有没有办法让文本框将文本格式化为XML文档?有没有不同的控制呢?
pat*_*onc 26
这应该做的伎俩:
protected string FormatXml(string xmlString)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
StringBuilder sb = new StringBuilder();
System.IO.TextWriter tr = new System.IO.StringWriter(sb);
XmlTextWriter wr = new XmlTextWriter(tr);
wr.Formatting = Formatting.Indented;
doc.Save(wr);
wr.Close();
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
您可以将转换器附加到绑定器,并在转换器内调用格式化代码.
这是格式化XML的示例代码:
public string FormatXml(string xml)
{
var doc = new XmlDocument();
doc.LoadXml(xml);
var stringBuilder = new StringBuilder();
var xmlWriterSettings = new XmlWriterSettings
{Indent = true, OmitXmlDeclaration = true};
doc.Save(XmlWriter.Create(stringBuilder, xmlWriterSettings));
return stringBuilder.ToString();
}
Run Code Online (Sandbox Code Playgroud)
测试演示了用法:
public void TestFormat()
{
string xml = "<root><sub/></root>";
string expectedXml = "<root>" + Environment.NewLine +
" <sub />" + Environment.NewLine +
"</root>";
string formattedXml = FormatXml(xml);
Assert.AreEqual(expectedXml, formattedXml);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14237 次 |
最近记录: |