如何使用ajax接受由java动态生成的xml
内容描述:本人在做一个网站 , 在处理用户搜索方面使用的是 ajax 代替了传统的表单提交 , 而在后台使用java 的 action 类处理逻辑 。 现在我想能不能使用 java动态生成xml文件来存储 搜索结果 , 然后将 生成的xml文件内容 反馈到页面 , 并使用 jquery ajax来解析接受到的 xml 文件 。
生成xml的java类中生成xml内容的部分 :
// 创建根节点 list;
Element root = new Element("publishersList");
// 根节点添加到文档中;
Document Doc = new Document(root);
if(publisherList.size() > 0){
for(int i = 0 ; i < publisherList.size() ; i++){
Publisher publisher = publisherList.get(i);
// 创建节点 user;
Element elements = new Element("publisher");
// 给 user 节点添加属性 id;
elements.setAttribute("id", publisher.getPublisherId());
//添加子节点并赋值;
elements.addContent(new Element("publisherName").setText(publisher.getPublisherName()));
elements.addContent(new Element("publisherAddr").setText(publisher.getPublisherAddr()));
elements.addContent(new Element("publisherTel").setText(publisher.getPublisherTel()));
elements.addContent(new Element("summary").setText(publisher.getSummary()));
// 给父节点list添加user子节点;
root.addContent(elements);
}
}
XMLOutputter XMLOut = new XMLOutputter();
在前台页面(jsp)中采用jquery ajax来接受 :
var xmlHttp ;
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest() ;
}else{}
var uri = "/Library/Publisher/PublisherQueryAction.action" ;
uri = encodeURI(encodeURI(uri));
xmlHttp.open("post",uri,true) ;
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
//将后台返回的html代码插入到 readerTable 节点中 ;
var xml = xmlHttp.responseXML;
var publishNode = xml.getElementsByTagName('publisher');
alert(publishNode.length);
}
}
xmlHttp.send(null) ;
在解析的时候程序不会报错,但是 却并不能够 解析出数据 (生成的xml文件是有数据的) , 求高人指点 .......