为什么 XmlWriter.WriteString("\n") 抛出异常?
Why does XmlWriter.WriteString("\n") throw an Exception?
我正在尝试在 xml.WriteStartDocument()
之后写一个新行。当我这样做时,它会抛出异常。如果我将它写在根元素中,它似乎不会抛出异常。
InvalidOperationException: Token Text in state Document would result in an invalid XML document.
那么为什么这不起作用?我怎样才能让它发挥作用?
using(XmlWriter xml = XmlWriter.Create(xmlFile))
{
xml.WriteStartDocument();
xml.WriteString("\n"); // <-- Exception
// more nodes here
}
我正在尝试在 XML 声明和根节点之间输出新行,因为没有它 XmlWriter 会生成一个难以阅读的字符串。期望的输出:
<?xml version="1.0" encoding="utf-8"?>
<root/>
WriteString 用于在 XML 元素内写入字符串值。他要写的时候没有元素,所以失败
您可以使用:
xml.WriteRaw("\n");
请注意,WriteRaw
会准确地写下您所说的一切。 IE。如果您决定跳过文档开头的 XML 声明并以新行开始 "XML",它将产生无效的 XML。如果你只是想获得漂亮的 XML - 使用 Indentation and new line command for XMLwriter in C#.
我正在尝试在 xml.WriteStartDocument()
之后写一个新行。当我这样做时,它会抛出异常。如果我将它写在根元素中,它似乎不会抛出异常。
InvalidOperationException: Token Text in state Document would result in an invalid XML document.
那么为什么这不起作用?我怎样才能让它发挥作用?
using(XmlWriter xml = XmlWriter.Create(xmlFile))
{
xml.WriteStartDocument();
xml.WriteString("\n"); // <-- Exception
// more nodes here
}
我正在尝试在 XML 声明和根节点之间输出新行,因为没有它 XmlWriter 会生成一个难以阅读的字符串。期望的输出:
<?xml version="1.0" encoding="utf-8"?>
<root/>
WriteString 用于在 XML 元素内写入字符串值。他要写的时候没有元素,所以失败
您可以使用:
xml.WriteRaw("\n");
请注意,WriteRaw
会准确地写下您所说的一切。 IE。如果您决定跳过文档开头的 XML 声明并以新行开始 "XML",它将产生无效的 XML。如果你只是想获得漂亮的 XML - 使用 Indentation and new line command for XMLwriter in C#.