我正在使用XML,我遇到了这个问题:我想在一行上添加一个内部文本,由开启和关闭元素标签分隔。像这样:
<root>
<child name="name">
Hi! I'm inner text!
</child>
</root>
但如果我添加内部文字:
child.InnerText = "Hi! I'm inner text!";
我所有人都在同一条线上:
<root>
<child name="name">Hi! I'm inner text!</child>
</root>
我试图添加:
xDoc.PreserveWhitespace = true;
保存功能之前没有结果。试过:
child.AppendChild(xDoc.CreateWhitespace("\n"));
在InnerText指令之后或之前。没有。一些帮助?
编辑:这是我保存XML的方式:
xDoc.Save(filename);
答案 0 :(得分:1)
有几种不同的选择。您可以设置XmlElement的InnerText或附加文本节点。
XmlDocument xDoc = new XmlDocument();
xDoc.PreserveWhitespace = true;
XmlNode root = xDoc.AppendChild(xDoc.CreateElement("root"));
XmlNode child = root.AppendChild(xDoc.CreateElement("child"));
((XmlElement)child).InnerText = "\nHi! I'm Inner Text!\n";
child.AppendChild(xDoc.CreateTextNode("\nHi! I'm also Inner Text\n"));
xDoc.Save(@"c:\temp\temp.xml");
Debug.Write(xDoc.InnerXml.ToString());
请记住,根据您查看生成的XML的方式,您可能看不到文档中生成的换行符。例如,IE在向您展示文档的漂亮版本时会很高兴地忽略它们。