如何在使用XElement.Save时省略xml声明?

Joa*_*nge 6 .net c# xelement xmlreader

XElement.Save 实际上做我需要的,但它启动文件:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

有办法防止这种情况吗?

在完成创建后,我应该使用其他类型,方法保存XElement吗?

或者我应该跳过那条线XmlReader.Read?因为这样做我觉得它更脆弱,因为我假设第一行总是这个xml声明.

实现这一目标的最简单方法是什么?

Joe*_*ler 5

XElement.ToString()不会将XML声明添加到输出中.但我不明白为什么XmlReader- 或任何XML解析器 - 会遇到标准XML声明的问题.


dap*_*api 5

此示例将示例xmlTree数据写入文本文件data.xml,没有声明行,但包括缩进格式:

XElement xmlTree = new XElement("Root",
  new XAttribute("Attribute1", 1),
  new XElement("Child1", 1),
  new XElement("Child2", 2)
);
using (var writer = XmlWriter.Create("data.xml", new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true }))
  xmlTree.Save(writer);
Run Code Online (Sandbox Code Playgroud)