ASP.NET MVC出现XML5632仅允许有一个根元素

本文记录了ASP.NET MVC项目中,使用XmlWriter类输出XML流,导致Response响应网站出现空白页,并且在调试中出现XML5632:仅允许有一个根元素的错误

XmlWriter的InvalidOperationException异常

造成此原因是由于在使用XmlWriter的时候,没有使用Close()方法关闭流,导致所输出的XML为无限的文档。流输出没有关闭而使XML格式不完整。

MSDN上有相关说明:

1、在调用 Close 之后执行要编写其他输出的调用,或者此调用的结果是无效的XML文档。

2、使用 XmlWriter 方法输出 XML 时,在调用 Close 方法前,不会写入元素和属性。 例如,如果使用 XmlWriter 写入 XmlDocument,则在关闭 XmlWriter 之前,您将无法在目标文档中看到写入的元素和特性。

具体的代码如下:

Response.ContentType = "application/xml";
XmlWriter responseWriter = XmlWriter.Create(Response.OutputStream, null);
responseWriter.WriteStartElement("book");
responseWriter.WriteElementString("name", "西游记");
responseWriter.WriteEndElement();
//一定要关闭流
responseWriter.Close();

最后如果没有调用Close方法关闭流的话,就会出现仅允许有一个根元素的错误,这是因为输出的XML文档格式不完整,导致变成无效的文档。




原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98667.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论