如何使用XmlWriter将XML声明改为standalone="yes"?
修改XmlWriter生成的XML声明(不含encoding,添加standalone="yes")
你可以通过XmlWriterSettings来配置XML声明的属性,这是XmlWriter原生支持的方式,无需硬编码XML声明内容。具体实现如下:
核心配置要点
- 创建
XmlWriterSettings实例,设置Standalone为"yes",指定XML声明的standalone属性。 - 设置
Encoding为null,避免生成默认的encoding="utf-8"属性。
修改后的完整代码
static void Main(string[] args) { string filePath = "Test.xml"; // 配置XmlWriter的生成规则 XmlWriterSettings settings = new XmlWriterSettings(); settings.Standalone = "yes"; // 启用standalone声明 settings.Encoding = null; // 不输出encoding属性 settings.Indent = true; // 可选:格式化XML结构,提升可读性 using (XmlWriter writer = XmlWriter.Create(filePath, settings)) { writer.WriteStartElement("Root"); writer.WriteElementString("Element", "Value"); writer.WriteEndElement(); } Console.WriteLine("XML has been created successfully."); }
说明
settings.Standalone:直接控制XML声明中的standalone属性值,取值为"yes"或"no",完全符合XML规范。settings.Encoding = null:默认情况下XmlWriter会根据编码自动添加encoding属性,设置为null后将不再输出该属性,正好匹配你想要的<?xml version="1.0" standalone="yes"?>格式。
内容的提问来源于stack exchange,提问作者Richard Brescher
相关产品推荐
相关产品推荐

