XmlTextWriter输出xml到页面的问题

protected void Page_Load(object sender, EventArgs e)
 {
            Response.ContentType = "text/xml";
            this.Response.Clear();
            XmlTextWriter xtw = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
            xtw.Formatting = Formatting.Indented;
            xtw.Indentation = 3;
            xtw.WriteStartDocument(true);
            xtw.WriteStartElement("data");
            xtw.WriteAttributeString("dd", "xx");
            xtw.WriteEndElement();
            xtw.WriteEndDocument();
            Response.End();
 }
 
输出的结果不对。最后从网上看到少了两句:
protected void Page_Load(object sender, EventArgs e)
 {
            Response.ContentType = "text/xml";
            this.Response.Clear();
            XmlTextWriter xtw = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
            xtw.Formatting = Formatting.Indented;
            xtw.Indentation = 3;
            xtw.WriteStartDocument(true);
            xtw.WriteStartElement("data");
            xtw.WriteAttributeString("dd", "xx");
            xtw.WriteEndElement();
            xtw.WriteEndDocument();
            xtw.Flush();
            xtw.Close();
            Response.End();
 }
 
经过测试, Flush和Close方法只要有其一就可以正常。最好应该是两个都要。真是郁闷,xmltextwriter竟然不能自己提交缓存。
另外需要注意Response.End()也不能缺少。
 
原文地址:https://www.cnblogs.com/worldreason/p/1255164.html