我正在用 C# 创建一个轻量级编辑器,并且想知道将字符串转换为格式良好的 XML 字符串的最佳方法。我希望 C# 库中有一个公共(public)方法,例如“public bool FormatAsXml(string text, out string formattedXmlText)”,但它不可能那么容易,不是吗?
非常具体地说,“SomeMethod”方法必须是什么才能产生下面的输出?
string unformattedXml;
string formattedXml;
unformattedXml = "<?xml version=\"1.0\"?><book><author>Lewis, C.S.</author><title>The Four Loves</title></book>"
formattedXml = SomeMethod(unformattedXml);
Console.WriteLine(formattedXml);
输出:
<?xml version="1.0"?>
<book id="123">
<author>Lewis, C.S.</author>
<title>The Four Loves</title>
</book>
最佳答案
string unformattedXml = "<?xml version=\"1.0\"?><book><author>Lewis, C.S.</author><title>The Four Loves</title></book>";
string formattedXml = XElement.Parse(unformattedXml).ToString();
Console.WriteLine(formattedXml);
输出:
<book>
<author>Lewis, C.S.</author>
<title>The Four Loves</title>
</book>
Xml 声明不是由 ToString() 输出,而是由 Save() 输出...
XElement.Parse(unformattedXml).Save(@"C:\doc.xml");
Console.WriteLine(File.ReadAllText(@"C:\doc.xml"));
输出:
<?xml version="1.0" encoding="utf-8"?>
<book>
<author>Lewis, C.S.</author>
<title>The Four Loves</title>
</book>
https://stackoverflow.com/questions/194944/
相关文章:
ruby-on-rails - Rails(或 Ruby): Yes/No instead of T
perl - Perl 中的今天日期,格式为 MM/DD/YYYY
reporting-services - Reporting Services [SSRS] 表达式
javascript - 用于在 JavaScript 中格式化数字的正则表达式
visual-studio-code - 如何格式化 Visual Studio Code 项目中的
bash - 如何在 bash 中打印一些文本并用空格填充到一定宽度?