1

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

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

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

它给了我一个例外:

WriteStartDocument needs to be the first call.

但正如您所见,我确实先调用了 WriteStartDocument()!

有任何想法吗?

4

3 回答 3

2

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

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

于 2009-04-07T15:46:02.077 回答
2

尝试使用这个:

XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteStartDocument(false);
xmlWriter.WriteStartElement("userInfo");
于 2011-10-10T13:24:18.803 回答
1

不要忘记清除内容的 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();
于 2009-04-07T15:49:18.437 回答