`
angie_hawk7
  • 浏览: 46727 次
  • 性别: Icon_minigender_1
  • 来自: 乌托邦
社区版块
存档分类
最新评论

【整理】IE和FireFox都支持的AJAX解析XML的方法

阅读更多

========================AJAX=====================

var xmlHttp = false;
try {
   xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
   try {
   xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch (e2) {
    xmlHttp = false;
   }
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
   xmlHttp = new XMLHttpRequest();
}

function onIdcChanged(idcid)
{
var requrl = "${ctx}/block/idc/block.do?method=getRoom&parentInventoryId="+idcid;
xmlHttp.open("POST",requrl, true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = update;
xmlHttp.send(null);//为支持火狐加null
}

function update(){

if(xmlHttp.readyState == 4) {
   try{
    var retXml = xmlHttp.responseText;
       //alert(retXml);
       //parase the xml,and then update the related box
    if( retXml == "false" ){
        //can not get the customer info
        alert(retXml);
       }else{
        //get the html element
        var room = document.getElementById("room");
        clearSelect(room,true);
        //get the xml data
     var xmlDoc;
        if (window.ActiveXObject)
        {
               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
               xmlDoc.async=true;
               xmlDoc.loadXML(retXml);
        }
        // code for Mozilla, Firefox, Opera, etc.
        else if (document.implementation && document.implementation.createDocument)
        {
          var oParser=new DOMParser();
                   xmlDoc=oParser.parseFromString(retXml,"text/xml");

        }
        else
        {
               alert('你的浏览器不支持这个脚本!');
        }
       
      

     var items = xmlDoc.getElementsByTagName("rooms");
     alert(items[1].getAttribute("name"));
     for(var i=0;i<items.length;i++){
      var id = items[i].getAttribute("id");
      var name = items[i].getAttribute("name");
      room.options.add(new Option(name,id));
     }
    }
   }catch(e){
    //alert(e);
   }
}
}

====================Method==================

    public ActionForward getRoom(ActionMapping mapping, ActionForm form,
            HttpServletRequest request,
            HttpServletResponse response) {
        String xml = "false";
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement("root");
        Element ele = null;
        ele = root.addElement("rooms");
        ele.addAttribute("id", "allroom");
        MyUser user = (MyUser) request.getSession().getAttribute(MyConstant.SESS_USER);
        Integer idcId = Integer.parseInt(request.getParameter("parentInventoryId"));
        InventoryApi api = InventoryApi.getInstance();
        List<InventoryItem> roomList = null;
        roomList = api.getRoomListByIdc(idcId, user);

        try {

            for (int i = 0; roomList != null && i < roomList.size(); i++) {
                ele = root.addElement("rooms");
                ele.addAttribute("id", roomList.get(i).getId() + "");
                ele.addAttribute("name", roomList.get(i).getName() + "");

            }
            xml = document.asXML();
        } catch (Exception e) {
            e.printStackTrace();
        }
        renderXML(response, xml);
        return null;
    }
分享到:
评论

相关推荐

    Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)

    Javascript AJAX 解析XML的代码(兼容FIREFOX/IE)

    Ajax读取xml数据类型例子

    这是用ajax读取xml数据类型的例子,其中只能在chrome与firefox运行,在ie下不能正常运行。

    js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)

    分别针对ie和火狐分别作了对xml文档和xml字符串的解析,所有代码都注释掉了,想看哪部分功能,去掉注释就可以了。至于在ajax环境下解析xml,其实原理是一样的,只不过放在了ajax里,还是要对返回的xml进行解析。 ...

    Ajax完全自学手册(PPT)

    Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test ...

    Ajax完全自学手册(源代码).rar

    Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test ...

    Ajax完全自学手册PPT和源代码(ptt格式)

    Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test Firefox ...

    jQuery行级解析读取XML文件

    在IE6+和FireFox 3.0+浏览器上测试都完美通过。下载源码包后直接解压到你的网站根目录即可进行测试。详细代码说明请浏览关于此源码包的文章:http://blog.csdn.net/xht555/archive/2009/10/11/4653604.aspx

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    在XML和DTD文件中,第一个定义的都是根元素。 3.Parent Element(父元素)/Child Element(子元素) 父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的"结构树",其中是父元素,,是它的子元素,...

    精通CSS+DIV 网页样式与布局【PDF】

    细致介绍CSS的语法规则,透彻讲解CSS应用于各种网页元素的步骤和技巧深入剖析,CSS+DIV布局的思路和方法比较,IE和Firefox浏览器对CSS支持的不同效果,扩展CSS与JavaScript,Ajax,XML的综合应用,全面解析5个完整网站的CSS...

    Zend 输出产生XML解析错误

    刚开始 Ajax 调用 PHP 用 DOM 动态产生的XML文件时没有任何错误。转到 Zend FrameWork 下时,在 IE 下显示也完全正常并且 Ajax 解析正常,但是在 Firefox 和 Safari 下便出现如下错误

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    精通css+div网页样式与布局

    《精通CSS+DIV网页样式与布局》从零开始,细致介绍CSS的语法规则,透彻讲解CSS应用于各种网页元素的步骤和技巧深入剖析,CSS+DIV布局的思路和方法比较,IE和Firefox浏览器对CSS支持的不同效果,扩展CSS与JavaScript...

    FireFox中textNode分片的问题

    Ajax应用中很常见的行为便是后台把数据用XML包裹好返回给浏览器,浏览器解析XML,得到nodeValue 如果单个node中内容很长(超过4096字节),这时在FireFox/Mozilla中就要注意了,内容将会被FrieFox分解为多个textNode,...

    ExtAspNet_v2.3.2_dll

    支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: ...

    X-Cart Gold 4.5.4.zip

    10月16日的2012年的目标 - 问题(0126053):详细的图像,:预览图像失踪,在Firefox和Opera。固定的。 *语言* [*]的目标 - 改进(0123712):2012年10月18号,澳大利亚的语言。 [“AU”,“AUS”,“澳大利亚”] ...

    动易专业版——Upgrade_SiteFactory.Professional_2.5.2.0-2.5.3.0的升级包

    ●子域名下的页面在IE6下用AJAX访问标签时出现JS错误。 ●添加文章勾选“是否显示评论链接”,前台列表显示时不能在标题旁显示“评论”链接。 ●“加密文章内容页”模板在改变字体大小与收藏的功能不起作用。 ●...

Global site tag (gtag.js) - Google Analytics