本文介绍了为什么我的XDocument保存时,我不希望它的声明?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
类节目
{
静态无效的主要(字符串[ ]参数)
{
使用(VAR流= File.Create(@C:\test.xml))
{
VAR XML =
新的XElement(根,
新的XElement(subelement1,1),
新的XElement(subelement2,2));
变种DOC =新的XDocument(XML);
doc.Declaration = NULL;
doc.Save(流);
}
}
}
我试图让XML保存没XML声明,但即使我在清空的的XDocument
,它仍然被保存到最终的XML声明。
这代码输出:
< XML版本=1.0编码=UTF -8>?;
<根和GT;
< subelement1> 1 LT; / subelement1>
将; subelement2→2&下; / subelement2>
< /根>
解决方案
而不是 XDocument.Save( )
您可以使用的XmlWriter
与 XmlWriterSettings.OmitXmlDeclaration
设置为真正
使用System.IO;
使用的System.Xml;
使用System.Xml.Linq的;
XmlWriterSettings XWS =新XmlWriterSettings();
xws.OmitXmlDeclaration = TRUE;
xws.Indent = TRUE;使用
(VAR流= File.Create(@C:\test.xml))使用
(XmlWriter的XW = XmlWriter.Create(流XWS))
{
变种XML =新的XElement(
根,
新的XElement(subelement1,1),
新的XElement(subelement2,2 ));
xml.Save(XW);
}
I have the following code:
class Program
{
static void Main(string[] args)
{
using (var stream = File.Create(@"C:\test.xml"))
{
var xml =
new XElement("root",
new XElement("subelement1", "1"),
new XElement("subelement2", "2"));
var doc = new XDocument(xml);
doc.Declaration = null;
doc.Save(stream);
}
}
}
I am trying to get XML to save without the xml declaration, but even though I am nulling out the declaration of the XDocument
, it is still being saved to the final XML.
This code is outputting:
<?xml version="1.0" encoding="utf-8"?>
<root>
<subelement1>1</subelement1>
<subelement2>2</subelement2>
</root>
解决方案
Instead XDocument.Save()
you can use XmlWriter
with XmlWriterSettings.OmitXmlDeclaration
set to true
using System.IO;
using System.Xml;
using System.Xml.Linq;
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (var stream = File.Create(@"C:\test.xml"))
using (XmlWriter xw = XmlWriter.Create(stream, xws))
{
var xml = new XElement(
"root",
new XElement("subelement1", "1"),
new XElement("subelement2", "2"));
xml.Save(xw);
}
这篇关于为什么我的XDocument保存时,我不希望它的声明?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!