1

我正在使用 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);
4

1 回答 1

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 在向您显示文档的漂亮版本时会很高兴地忽略它们。

于 2012-07-10T21:22:36.683 回答