C# 为什么XmlWriter.WriteString(“\n”抛出异常?
我正在尝试在C# 为什么XmlWriter.WriteString(“\n”抛出异常?,c#,xml,newline,xmldocument,invalidoperationexception,C#,Xml,Newline,Xmldocument,Invalidoperationexception,我正在尝试在xml.WriteStartDocument()之后写一行新行。当我这样做时,它抛出一个异常。如果我在根元素中写入异常,它似乎不会抛出异常 InvalidOperationException:状态文档中的标记文本将导致无效的XML文档 那么为什么这不起作用呢?我怎样才能让它工作呢 using(XmlWriter xml = XmlWriter.Create(xmlFile)) { xml.WriteStartDocument(); xml.WriteString("\n");
xml.WriteStartDocument()之后写一行新行。当我这样做时,它抛出一个异常。如果我在根元素中写入异常,它似乎不会抛出异常
InvalidOperationException:状态文档中的标记文本将导致无效的XML文档
那么为什么这不起作用呢?我怎样才能让它工作呢
using(XmlWriter xml = XmlWriter.Create(xmlFile))
{
xml.WriteStartDocument();
xml.WriteString("\n"); // <-- Exception
// more nodes here
}
使用(XmlWriter xml=XmlWriter.Create(xmlFile))
{
WriteStartDocument();
WriteString(“\n”);//WriteString用于在xml元素中写入字符串值。当他想要写入时,没有元素,因此写入失败
您可以使用:
xml.WriteRaw("\n");
请注意,WriteRaw
将准确地编写您所说的任何内容。例如,如果您决定跳过文档开头的XML声明并启动“XML”使用新行时,它将生成无效的XML。如果您只想获得好看的XML,请使用。WriteString用于在XML元素中写入字符串值。当他想要写入时,没有元素,因此它失败
您可以使用:
xml.WriteRaw("\n");
请注意,WriteRaw
将准确地编写您所说的任何内容。也就是说,如果您决定跳过文档开头的XML声明,并以新行开始“XML”,它将生成无效的XML。如果您只想获得外观美观的XML,请使用。请注意:寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。请包括有关引发异常的信息以及您试图实现的预期行为或结果。那么,异常消息是怎么说的?@MarcGravel添加了一条。请随意删除所有命令请注意:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。请包括有关引发异常的信息以及您试图实现的预期行为或结果。那么,异常消息是怎么说的?@MarcGravel添加了一条。请随意删除所有命令这很好,但是OP的代码有什么问题吗?WriteString用于在XML元素中写入字符串值。当他想要写入时,没有元素,所以它失败了。@HansKilian,而不是添加解释作为注释,你应该编辑这篇文章。我为你做了这件事,并添加了一些你想要的单词现在,这是一个非常棒的答案,它提出了OP可能想要的更好的方法,值得向上投票(相对于原始版本的VLQ)这很好,但是OP的代码有什么问题吗?WriteString用于在XML元素中写入字符串值。当他想要写入时,没有元素,所以它失败了。@HansKilian没有添加解释作为注释,你应该编辑这篇文章。我为你做了这件事,还添加了一些关于应用程序的话罗奇。现在,这是一个令人敬畏的答案,它提出了更好的方法来实现OP可能想要的东西,值得向上投票(相对于原始版本的边缘VLQ)