手动创建开始 XML

Create start XML manually

我想创建 XML 文件,所以我使用这种方式:

XmlWriterSettings settings = new XmlWriterSettings
                  {
                      Indent = true,
                      Encoding = Encoding.Unicode
                  };

string xmlPath = @"c:\file.xml";
XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings);
xmlWriter.WriteStartDocument(false);

结果:

<?xml version="1.0" encoding="utf-16" standalone="no"?>
<cp>
  <user>NA</user>
  <password>NA</password>
</cu>

但我希望这个开始 XML 将是 Upper case:

<?xml version="1.0" encoding="UTF-16" standalone="no"?>

所以我尝试手动创建这个开始:

 XmlWriterSettings settings = new XmlWriterSettings
                   {
                        Indent = true,
                        Encoding = Encoding.Unicode
                   };

string xmlPath = @"c:\file.xml";
XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings);
xmlWriter.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n");

但结果是我收到了两次开始:

<?xml version="1.0" encoding="utf-16"?><?xml version="1.0" encoding="UTF-16" standalone="no"?>

您可以在开始编写 xml 之前添加以下行。 也就是说,

settings.OmitXmlDeclaration = true;
string xmlPath = @"c:\file.xml";
XmlWriter xmlWriter = XmlWriter.Create(xmlPath, settings);
xmlWriter.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"no\"?>\r\n");

这样您的 xml 将不会使用默认声明创建,而是使用您专门添加的声明创建。