当元素为空时,XMLDocument.Save将返回载体添加到XML

Arv*_*wen 13 .net c# xml

我正在加载一个XML文档,其中包含一些没有innertext的标记.

如果我用一些数据填充innertext,那么它可以根据需要工作(你可以在一行上打开标签,innertext和关闭标签),如下所示......

<root>
  <element>value</element>
</root>
Run Code Online (Sandbox Code Playgroud)

问题出现在没有值的标签上.这些应该以与上面相同的方式显示,除了没有粗糙值之外,如下所示......

<root>
  <element></element>
</root>
Run Code Online (Sandbox Code Playgroud)

但是,当innertext有一个空字符串时,它会添加一个回车和换行符,这不是预期的!最终看起来像以下......

<root>
  <element>
  </element>
</root>
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码,产生上述结果......

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\test.xml");

//Save the xml and then cleanup
xmlDoc.Save(@"C:\test.xml");
Run Code Online (Sandbox Code Playgroud)

Arv*_*wen 21

这为我修好了......

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\test.xml");

//Save the xml and then cleanup
XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
XmlWriter writer = XmlWriter.Create(@"C:\test.xml", settings);
xmlDoc.Save(writer);
Run Code Online (Sandbox Code Playgroud)