使用MSXML2.DOMDocument装载由Servlet生成的XML字符串时遇到不可解释的问题?????

tonysnss 2004-12-06 11:47:55
我写了一个html和一个Servlet,在单击html中按钮时装载xml,这个xml是由Servlet在服务器端拼成的XML字符串,我使用MSXML2.DOMDocument的Load方法装载我生成的xml字符串,然后使用alert(xmldoc.xml)方法打印该xml时发现,xml已经返回到客户端IE,但返回的xml头和我在Servlet服务器端拼的xml头不一样。

我拼写的是<?xml version='1.0' encoding='GB2312'?>,返回的却是<?xml version='1.0'?>,xml头中少了encoding='GB2312'。

我在Servlet中打印我拼的xml字符串时,发现xml拼写正确,在xml头中确有encoding='GB2312',但用MSXML2.DOMDocument装载我返回的xml字符串后,encoding='GB2312'这句就没有了,我百思不得其解,各位大哥你们知道怎么回事吗??

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//html代码
<html>
<head>
</head>
<body>
<input type=button value="读取服务器端返回数据XML" onclick="Read()"><br>
<script>
var xmldoc = new ActiveXObject("MSXML2.DOMDocument");
function Read(){
xmldoc.async="false";
xmldoc.load("http://195.2.199.196:8080/XMLHttp/parserxmlservlet");
var str=xmldoc.xml;
alert(str);
}
</script>
</body>
</html>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Servlet代码
package javascriptxml;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ParserXMLServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/xml; charset=GB2312";

public void init() throws ServletException {
}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
StringBuffer buffer = new StringBuffer(2048);
buffer.append("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
buffer.append("<xmldata>\n");
buffer.append("<band ID='ptitle'>\n");
buffer.append("<row>\n");
buffer.append("<ob>\n");
buffer.append("<on>");
buffer.append("Title");
buffer.append("</on>\n");
buffer.append("<ov>");
buffer.append("报表");
buffer.append("</ov>\n");
buffer.append("</ob>\n");
buffer.append("</row>\n");
buffer.append("</band>\n");
buffer.append("</xmldata>\n");
System.out.print(buffer);
out.print(buffer);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}

public void destroy() {
}
}
...全文
133 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jFresH_MaN 2004-12-06
  • 打赏
  • 举报
回复
真的很奇怪
你再调试一下把
比如把属性的双引号换成单引号
给其他元素多加几个属性,看还会不会丢了属性
呵呵,我只能这么帮你了
tonysnss 2004-12-06
  • 打赏
  • 举报
回复
jFresH_MaN()(AbsolutelyFresh)(java欣人) 试过了不行
jFresH_MaN 2004-12-06
  • 打赏
  • 举报
回复
private static final String CONTENT_TYPE = "text/xml";
这样试试
loverisyour 2004-12-06
  • 打赏
  • 举报
回复
不知道哦,帮你顶吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧