Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么XmlWriter.WriteString(“\n”抛出异常?_C#_Xml_Newline_Xmldocument_Invalidoperationexception - Fatal编程技术网

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)