SmartStone's Technical Blog

天下没有免费的午餐,即使有,那也是有毒的!
posts - 150, comments - 91, trackbacks - 2, articles - 1
Ajax应用程序中服务器端如果使用ASPX返回XML格式数据,一般将VS生成的HTML字符先清除,代码文件中直接使用Response.Write输出XML字符串。
 
需要注意的是要设置Response的相应属性客户端才能正确解析字符串。
 
首先要设置ContentType 属性:
Response.ContentType = "text/xml";
如果xml字符串中包含中文则还要设置Charset属性:
Response.Charset = "GB2312";
 
然后按照XML文件的格式输出内容:
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\" ?>");
 
今天就是因为这个Charset让我郁闷了好久,因为XML字符中中包含中文字符而又没有设置Charset,因此XMLHttpRequest.responseXML总是null,查了半天资料终于恍然大悟。

Feedback

#1楼    回复  引用    

2006-07-09 15:44 by 幻想曲.Net [未注册用户]
http://www.lemongtree.com/zh-cn/item,360.html

我一般用
XmlTextWriter类

#2楼    回复  引用    

2007-06-26 19:09 by yl [未注册用户]
Response.ContentType = "text/xml";
Response.Charset = "GB2312";
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\"?>");

Response.Write("<pictures>");
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
Response.Write("<item>");
Response.Write("<name>" + row["ALBUM_NAME"].ToString() + "</name>");
Response.Write("<url>" + row["ALBUM_URL"].ToString() + "</url>");
Response.Write("<description>" + row["ALBUM_DESC"].ToString() + "</description>");
Response.Write("</item>");
}
}
Response.Write("</pictures>");
还是不行

#3楼    回复  引用    

2007-06-26 19:11 by yl [未注册用户]
responseXML还是null

发表评论



姓名 [登录] [注册] 
主页
Email (仅博主可见) 
验证码 *  验证码看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论   新用户注册   返回页首      

导航: 网站首页 社区 新闻 博问 闪存 网摘 招聘 .NET频道 知识库 找找看 Google站内搜索



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务

相关文章:

相关链接: