我知道如何使用Formatting.indented,但我不想要它,因为它会将每个元素写入一个新行。我想要的是仅在特定元素之前插入新行。换句话说,我想确切地控制新线的制作时间。
这可能吗?
答案 0 :(得分:3)
您可以使用WriteWhitespace
。
using (var writer = XmlWriter.Create(Console.Out))
{
writer.WriteStartElement("root");
writer.WriteStartElement("child");
writer.WriteWhitespace("\n");
writer.WriteStartElement("child-on-new-line");
writer.WriteString("content");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
}
这将输出:
<root><child>
<child-on-new-line>content</child-on-new-line></child></root>
请参阅this fiddle。
答案 1 :(得分:0)
白色空间是xml中不关心的。别担心。使用xml linq更容易:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication42
{
class Program
{
static void Main(string[] args)
{
XElement book = new XElement("book", new object[] {
new XElement("title","Pride And Prejudice")
});
}
}
}