我不希望它的声明

我不希望它的声明

本文介绍了为什么我的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保存时,我不希望它的声明?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 23:19