保存XElement而不影响当前标头

时间:2014-08-04 19:57:30

标签: c# xml xelement

所以,我正在加载这样一个文档的XElement

Root = XElement.Load(Path);

原始标题如下所示:

<?xml version="1.0" encoding="iso-8859-1"?>
<!--Some comment -->

当我致电Root.Save("file.xml");时,它会更改标头声明并删除评论。为什么会这样?除了使用XDocument创建一个新的整个xml以避免这种情况,我还能做些什么?

2 个答案:

答案 0 :(得分:2)

使用XDocument.Load代替XElement.Load

XML声明属于XDocument而非XElementXElement只需加载Root元素。有关详细信息,请参阅thisthis

答案 1 :(得分:0)

最短的方式是通过XDocument

XDocument doc = new XDocument(
    nex XDeclaration("1.0", "iso-8859-1", "no"),
    XElement.Load(Path)
);
doc.Add(new XComment("Some comment"));

如果你想保留原作,无论输入如何,你还是需要XDocument.Load ......