在通用处理程序中写入xml文件以响应
问题描述:
HttpContext.Current.Response.ContentType = "text/xml";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
HttpPostedFile file = HttpContext.Current.Request.Files[0];
XDocument doc = XDocument.Load(XmlReader.Create(file.InputStream));
var wr = new StringWriter();
doc.Save(wr);
HttpContext.Current.Response.Write(serializer.Serialize(wr.GetStringBuilder().ToString()));
这导致了一个损坏的xml文件。字符串看起来像这样:在通用处理程序中写入xml文件以响应
"\u003c?xml version=\"1.0\" encoding=\"utf-16\"?\u003e\r\n\u003cAuditSheet\u003e\r\n \u003cPLANT_SITE_CUSTOMER_NAME\u003eZINIFEX HOBART SMELTER\u003c/PLANT_SITE_CUSTOMER_NAME\u003e\r\n
我在这里错过了一些明显的东西吗?我需要手动删除\r\n
吗?谢谢
答
你不应该序列化字符串。
相反,您应该通过调用doc.Save(response.Output)
直接写入HTTP响应。
是的,刚刚注意到。要从序列化JSON复制粘贴:-)感谢您的回答 – Johan 2012-02-26 17:58:05