我想在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");