从XmlWriter中删除编码

本文关键字:编码 删除 XmlWriter | 更新日期: 2023-09-27 18:10:04

我使用XmlWriter和XmlWriterSettings将XML文件写入磁盘。但是,正在解析XML文件的系统会报错编码。

<?xml version="1.0" encoding="utf-8"?>

它想要的是:

<?xml version="1.0" ?>

如果我尝试OmitXmlDeclaration = true,那么我根本得不到xml行。

string destinationName = "C:''temp''file.xml";
string strClassification = "None";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(destinationName, settings))
{
    writer.WriteStartDocument();
    writer.WriteStartElement("ChunkData");
    writer.WriteElementString("Classification", strClassification);
    writer.WriteEndElement();
}

从XmlWriter中删除编码

刚好碰到这个——

  1. 完全删除XmlWriterSettings()并使用XmlTextWriter()'s Formatting字段进行缩进。
  2. XmlTextWriter's ctorEncoding参数传递null

下面的代码将创建您正在寻找的输出:<?xml version="1.0" ?>

var w = new XmlTextWriter(filename, null);
w.Formatting = Formatting.Indented; 
w.WriteStartDocument(); 
w.WriteStartElement("ChunkData");
w.WriteEndDocument(); 
w.Close();

.Close()有效地创建文件- usingCreate()方法也可以工作。