c# - 在 C# 中,将字符串格式化为 XML 的最佳方法是什么?

我正在用 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

c# - 将小数格式化为两位或整数

perl - Perl 中的今天日期,格式为 MM/DD/YYYY

reporting-services - Reporting Services [SSRS] 表达式

javascript - 用于在 JavaScript 中格式化数字的正则表达式

visual-studio-code - 如何格式化 Visual Studio Code 项目中的

sql-server - 如何在sql中获得小数点后2位?

bash - 如何在 bash 中打印一些文本并用空格填充到一定宽度?

javascript - 如何在javascript中将完整日期转换为短日期?

visual-studio - Razor Helper 语法自动格式化丑陋。怎么修?