从xml文件中删除独立属性

时间:2013-06-27 15:37:27

标签: c# xml xmldocument

我有一个xml文件,我需要修改它并将其写回输出文件。 问题是结果outputfile在根声明中包含一个额外的属性“standalone”,它在原始输入文件中不存在。 有什么办法可以阻止XmlDocument添加这个属性吗?

我试过的代码:

//read input xml
 XmlDocument xDoc  = new XmlDocument();
 xDoc.Load(originalFile);

//do some stuff
//....

//write back to output
using(XmlTextWriter xml2 = new XmlTextWriter(outputFile, Encoding.UTF8) { Formatting = Formatting.Indented })
            {   
                xDoc.CreateXmlDeclaration("1.0", null, "");
                xDoc.Save(xml2);

            }

inputfile包含:

<?xml version="1.0" encoding="UTF-8" ?>
...

output.xml包含:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
...

1 个答案:

答案 0 :(得分:5)

独立参数应为nullString.empty

xDoc.CreateXmlDeclaration("1.0", null, null);

CreateXmlDecleration也只是创建一个声明对象。您仍然需要将其添加到文档中,如下所示:

XmlDeclaration xDecl = xDoc.CreateXmlDeclaration("1.0", null, null);
if (xDoc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
  xDoc.ReplaceChild(xDecl, xDoc.FirstChild);
else
  xDoc.InsertBefore(xDecl, xDoc.DocumentElement);