zoukankan      html  css  js  c++  java
  • Jquery解析xml

    使用Jquery解析XML:
     $.ajax({
          url: 'ajax/test.xml',
          dataType : 'xml',
          cache: false, 
          success: function(xml) {
                $("AUTHOR", xml).each(function(id) {
                     AUTHOR = $("AUTHOR", xml).get(id);
                     alert($("FIRSTNAME", AUTHOR).text());
                     alert($("LASTNAME", AUTHOR).text());
                });
          }
     });
    以上方式:IE7无法通过,Firefox可以运行。
    可以使用以下方式来获取XML节点内容:
     $.ajax({
          url: 'ajax/test.xml',
          dataType : 'xml',
          cache: false, 
          success: function(xml) {
                $("AUTHOR", xml).each(function(id) {
                     //AUTHOR = $("AUTHOR", xml).get(id);
                     alert($(this).children("FIRSTNAME").text());
                     alert($(this).children("LASTNAME").text());

                });
          }
     });
     
     
    1,Content-Type
    很多时候无法解析就是Content-Type的问题。(呵呵,我第一次做ajax的时候,就遇到这个问题.)
    一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本了。
    常见语言的Content-Type设置
    CODE:
    header("Content-Type:text/xml");    //php
    response.ContentType="text/xml"   //asp
    response.setHeader("ContentType","text/xml");  //jsp   (我上次这没写,结果返回 是一个 "" )

    2,xml结构。
    XML一定要封闭的,很重要! (这个我一般不会范,我还是算比较细心的.)
    例:
    错误的XML
    Xml代码 复制代码
    1. CODE:   
    2. <?xml version="1.0" encoding="UTF-8"?>  
    3.         <name>zhangsan</name>  
    4.         <id>1</id>  
    5.         <name>lisi</name>  
    6.         <id>2</id>  
    7.   
    8. 正确的  
    9. CODE:   
    10. <?xml version="1.0" encoding="UTF-8"?>  
    11. <stulist>  
    12.         <student  email="1@1.com">     
    13.                 <name>zhangsan</name>    
    14.                 <id>1</id>  
    15.         </student>  
    16.         <student  email="2@2.com">  
    17.                <name>lisi</name>  
    18.                 <id>2</id>  
    19.         </student>  
    20. </stulist>  
    CODE: <?xml version="1.0" encoding="UTF-8"?> <name>zhangsan</name> <id>1</id> <name>lisi</name> <id>2</id> 正确的 CODE: <?xml version="1.0" encoding="UTF-8"?> <stulist> <student email="1@1.com"> <name>zhangsan</name> <id>1</id> </student> <student email="2@2.com"> <name>lisi</name> <id>2</id> </student> </stulist>

    3,解析
    遍历student(这里还是用上面那个XML,子节点是student)
    CODE:
    Js代码 复制代码
    1. $.ajax({   
    2.     url:'ajax.jsp',   
    3.     type: 'GET',   
    4.     dataType: 'xml',   
    5.     timeout: 1000,   
    6.     error: function(xml){   
    7.         alert('Error loading XML document'+xml);   
    8.     },   
    9.     success: function(xml){   
    10.         $(xml).find("student").each(function(i){   
    11.             var id=$(this).children("id");   //取对象   
    12.             var id_value=$(this).children("id").text();  //取文本 或者 $("id" xml).text();    
    13.             alert(id_value);//这里就是ID的值了。   
    14.             alert($(this).attr("email")); //这里能显示student下的email属性。   
    15.             $('<li></li>').html(id_value).appendTo('ol');   
    16.         });   
    17.     }   
    18. });  
    
    
    1. $.ajax({   
    2.     url:'ajax.jsp',   
    3.     type: 'GET',   
    4.     dataType: 'xml',   
    5.     timeout: 1000,   
    6.     error: function(xml){   
    7.         alert('Error loading XML document'+xml);   
    8.     },   
    9.     success: function(xml){   
    10.         $(xml).find("student").each(function(i){   
    11.             var id=$(this).children("id");   //取对象   
    12.             var id_value=$(this).children("id").text();  //取文本 或者 $("id" xml).text();    
    13.             alert(id_value);//这里就是ID的值了。   
    14.             alert($(this).attr("email")); //这里能显示student下的email属性。   
    15.             $('<li></li>').html(id_value).appendTo('ol');   
    16.         });   
    17.     }   
    18. });
    19.  

    $.ajax({

                         url:url,

                         type:"POST",

                         //data:params,

                         dataType: "xml",

                         async: false,

                         success:function(data){

                               

                                //alert(userid);

                                $(data).find("Root").each(function(i){

                                       var length=$(this).children("PhoneBookCard").length;       //所有对象的长度象

                                       for(var i=0;i<length;i++){

                                             

                                              var cardId=$($(this).children("PhoneBookCard").get(i)).find("cardId").text();        //每一个对象下面的节点对

                                              alert(cardId)

                                       }

                                      

                                      

                                });

    //上面兼容所有浏览器

    if(null!=data){

                                      

                                       var root=data.selectNodes("Root");

                                      

                                       for(var i=0;i<root.length;i++){

                                             

                                      

                                              var childNodes=root[i].childNodes;

                                              var childNodesLen=childNodes.length;

                                             

                                              for(var j=0;j<childNodesLen;j++){

                                              var cardId=$(childNodes[j]).find("cardId").text();      //id

                                //得到value值

                  }

           }

    }

    //这个只兼容IE

    });

  • 相关阅读:
    JVM参数配置
    域渗透命令
    相对路径绝对路径
    ESPCMS的CSRF添加管理员账号
    nmap脚本nse的使用
    Nmap简单的漏扫
    MS08-067
    lcx用法
    给自己的服务器传文件 转自别人
    突破大文件上传 和内网ip的端口转发
  • 原文地址:https://www.cnblogs.com/lijinchang/p/2211120.html
Copyright © 2011-2022 走看看