在序列化某个对象的时候,序列化出来的 XML 进行格式化,可以在创建的 XmlWriter 传入 XmlWriterSettings 设置 Indent 属性,如下面代码
public static string Serialize<T>(T obj)
var ns = new XmlSerializerNamespaces();
ns.Add("", "");
var xmlSerializer = new XmlSerializer(typeof(T));
var stringBuilder = new StringBuilder();
using (var xmlWriter = XmlWriter.Create(new StringWriter(stringBuilder), new XmlWriterSettings
Indent = true
xmlSerializer.Serialize(xmlWriter, obj, ns);
return stringBuilder.ToString();
上面代码的 XmlSerializerNamespaces 是为了去掉 XML 的命名空间
此时序列化出来的内容将会是格式化的
对于现有的 XML 文件或 XML 字符串,进行格式化,方法是先读取出来,然后再次写入,写入时设置格式化