WriteStartDocument()抛出InvalidOperationException

时间:2009-04-07 15:40:17

标签: asp.net xml xmltextwriter

我正在尝试生成XML,但我遇到了这个异常:

XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);

xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("userInfo");

它给了我一个例外:

WriteStartDocument needs to be the first call.

但是你可以看到,我确实先调用了WriteStartDocument()!

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

但是,响应流中已有其他内容(例如HTTP标头)。

将XML写入StringWriter然后将字符串写入Response可能更好。

答案 1 :(得分:1)

尝试使用:

XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteStartDocument(false);
xmlWriter.WriteStartElement("userInfo");

答案 2 :(得分:0)

不要忘记清除您的内容的aspx文件,以便只保留Page指令,即:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

还使用Response.Output而不是Response.OutputStream:

XmlTextWriter xmlWriter = new XmlTextWriter(Response.Output); 
xmlWriter.WriteStartDocument(); 
xmlWriter.WriteStartElement("userInfo");
xmlWriter.WriteEndElement();