如果指定PreserveWhitespace,则xmldocument无法格式化

时间:2017-12-03 13:15:41

标签: c# xml

我想在xml中添加一个元素并保存,我使用XmlDocuemnt。我的xml喜欢这个:

  <a>
    <b>asd</b>

    <c>as</c>
  </a>

我想保留空行,所以我指定PreserveWhitespace = true;但是当我用AppendChild(singlePropertyNode)追加我创建的节点并保存时,新添加的元素全部在一行中,下面就是我想要的样子:

<a>
  <b>asd</b>

  <c>as</c>
  <newNodes>
    <addedNode>reserve</addedNode>
  </newNodes>
</a>

如果我删除PreserveWhitespace = true它会格式化,但我确实想保留这些空行。

同时发布示例代码;

        string content = "<a>\r\n  <b>asd</b>\r\n\r\n  <c>as</c>\r\n</a>";

        XmlDocument xml = new XmlDocument();

        xml.PreserveWhitespace = true;
        xml.LoadXml(content);

        var nodeC = xml.DocumentElement.SelectSingleNode("//a");

        XmlElement newNodes = xml.CreateElement("newNodes", xml.DocumentElement.NamespaceURI);
        XmlElement addedNode = xml.CreateElement("addedNode", xml.DocumentElement.NamespaceURI);
        addedNode.InnerText = "reserve";
        newNodes.AppendChild(addedNode);

        nodeC.AppendChild(newNodes);
        xml.Save(@"d:\test.xml");  

0 个答案:

没有答案