我正在尝试生成XML,但我遇到了这个异常:
XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("userInfo");
它给了我一个例外:
WriteStartDocument needs to be the first call.
但是你可以看到,我确实先调用了WriteStartDocument()!
有什么想法吗?
答案 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();