jquery解析xml文档和xml字符串(ie和火狐环境下)

js解析xml会因为浏览器的不同使用的api也有所区别,jquery在解析时就做的比较好。

下面看看jquery解析xml文档和xml字符串。

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Author" content="lushuaiyin">
  <script type="text/javascript" src="jquery.js"></script>
 </head>
 <body>
  用jquery解析xml文档和xml字符串cccccccccccccccccccccccccc
  
 </body>
</html>

<script>


//解析xml文档/
var xmlDoc=null;

//支持IE浏览器
if(window.ActiveXObject){
   xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
}
//支持Mozilla浏览器
else if(document.implementation && document.implementation.createDocument){
   xmlDoc = document.implementation.createDocument('','',null);
}
else{
  alert("here");
}
if(xmlDoc!=null){
   xmlDoc.async = false;
   xmlDoc.load("house.xml");
}


//解析
 //$(xmlDoc).find('city').each( function ()  {
//	  var  cname = $( this ).attr('name');
//	  var  price = $( this ).children('price').text();
//	 alert($( this ).text()+"---------"+cname+"-----"+price);
// } );

 /*
分别弹出如下(在ie和火狐下都是一样的):
150万一室三居----北京---150万
200万-----上海-----200万
230万-----杭州-----230万
-------南京-------
 */






//jquery解析xml字符串 

var str2="<address>"+
   "<city name=\"河北\">"+
      " <price>120万</price>"+
	   "<type>两室三居</type>"+
   "</city>"+
   "<city name=\"邯郸\"></city>"+
"</address>";


//跨浏览器,ie和火狐解析xml使用的解析器是不一样的。
var xmlStrDoc=null;
if (window.DOMParser){// Mozilla Explorer
  parser=new DOMParser();
  xmlStrDoc=parser.parseFromString(str2,"text/xml");
}else{// Internet Explorer
  xmlStrDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlStrDoc.async="false";
  xmlStrDoc.loadXML(str2);
}

//解析
 $(xmlStrDoc).find('city').each( function ()  {
	  var  cname = $( this ).attr('name');
	  var  price = $( this ).children('price').text();
	 alert($( this ).text()+"---------"+cname+"-----"+price);
 } );

 /*
分别弹出如下(在ie和火狐下都是一样的):
120万两室三居----河北---120万
--------邯郸-----
 */
</script>


jquery解析的还是xmldom,它把解析的函数封装了,但这个dom还是会因为浏览器的不同而不同。

所以一开始我们还要根据浏览器new出这个dom。有了正确的dom剩下就是解析了。这才是jquery

封装的比较好的地方。

至于jquery能不能把这个dom(也就是本例中的xmlDoc和xmlStrDoc)也封装起来,本人现在还不清楚。

网上也没找到相关例子。(大家谁知道欢迎给我留言)

 

house.xml文档:

<?xml version="1.0" encoding="utf-8" ?> 
<address>
   <city name="北京">
       <price>150万</price>
	   <type>一室三居</type>
   </city>
   <city name="上海">
       <price>200万 </price>
   </city>
   <city name="杭州">
       <price>230万</price>
   </city>
   <city name="南京"></city>
</address>


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值