为什么我的XDocument会在我不想保存声明的时候保存声明?

我有以下代码:

课程计划
{
静态void Main(字符串[]参数)
{
使用(var stream=File.Create(@“C:\test.xml”))
{
var-xml=
新的XElement(“根”,
新元素(“子元素1”、“1”),
新元素(“子元素2”、“2”);
var doc=新的XDocument(xml);
单据声明=null;
单据保存(流);
}
}
}

我试图在不使用XML声明的情况下保存XML,但即使我取消了XDocument的声明,它仍然保存到最终的XML中

此代码正在输出:

<?xml version=“1.0”encoding=“utf-8”?>
<根>
<子元素1>1&lt/子元素1>
<子元素2>2&lt/子元素2>
&lt/根>

相反,XDocument.Save()您可以将XmlWriterXmlWriterSettings.ommitxmldocation设置为true

使用System.IO;
使用System.Xml;
使用System.Xml.Linq;
XmlWriterSettings xws=新的XmlWriterSettings();
xws.OmitXmlDeclaration=true;
xws.Indent=true;
使用(var stream=File.Create(@“C:\test.xml”))
使用(xmlwriterxw=XmlWriter.Create(stream,xws))
{
var xml=new-XElement(
“根”,
新元素(“子元素1”、“1”),
新元素(“子元素2”、“2”);
xml.Save(xw);
}

发表评论