我正在使用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();
}

最佳答案

刚遇到这个-

  • 完全删除XmlWriterSettings(),并将XmlTextWriter()'s Formatting字段用于缩进。
  • 传递null作为EncodingXmlTextWriter's ctor参数

  • 以下代码将创建您要查找的输出:<?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()方法也将起作用。

    10-04 23:02