0
点赞
收藏
分享

微信扫一扫

[转]使用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>


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 idvalue=$(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 idvalue=$(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. });


------------------------------------分割线--------------------------------------


<packet version="1.0.0">
	<status>success</status>
	<data>
		<item>
			<id>4b6a3c233b4cb</id>
			<count_view>41</count_view>
			<updated>2010-03-04 17:08:28</updated>
		</item>
	</data>
</packet>


 用jquery解析如下:


function(xml) {
						var val=$(xml).find("data>item>count_view").text();
						alert(val);


 

举报

相关推荐

0 条评论