注册 登录
编程论坛 jQuery论坛

如何使用ajax接受由java动态生成的xml

mzthy1989 发布于 2010-12-07 16:03, 5240 次点击
     内容描述:
         本人在做一个网站 , 在处理用户搜索方面使用的是 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文件是有数据的) , 求高人指点 .......
3 回复
#2
mzthy19892010-12-09 13:43
为什么没有高人指点一下 ?
#3
hugeannex2010-12-11 13:57
加上红色字体那句应该就没问题了.         
            uri = encodeURI(encodeURI(uri));
            xmlHttp.setRequestHeader("content-type","Application/x-www-form-urlencoded");
            xmlHttp.open("post",uri,true)
#4
mzthy19892010-12-23 20:14
回复 3楼 hugeannex
非常感谢,我试一下
1