`
zengshaotao
  • 浏览: 752753 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JQuery解析XML

 
阅读更多

用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做。下面我们来总结几个使用JQuery解析XML的例子。

第一种方案:

01 <script type="text/javascript">
02 $(document).ready(function() {
03     $.ajax({
04         url: 'http://www.nowamagic.net/cgi/test.xml',
05         dataType: 'xml',
06         success: function(data){
07             //console.log(data);
08             $(data).find("channel").find("item").each(function(index, ele) {
09                 var titles = $(ele).find("title").text();
10                 var links = $(ele).find("link").text();
11                 console.log(titles+'-----');
12                 $("#noticecon").find('ol').append('<li><a href="'+links+'">'+titles+'</a></li>');
13             });
14         }
15     });
16 })
17 </script>
18  
19     <div id="noticecon">
20         <ol>
21         </ol>
22     </div>

第二种方案:

01 <script type="text/javascript">
02     $.get("http://www.nowamagic.net/cgi/test.xml"function(data){
03         $(data).find('channel').find('item').each(function(index, ele){
04             var titles = $(ele).find('title').text();
05             var links = $(ele).find('link').text();
06             $("#noticecon").find('ol').append('<li><a href="'+links+'">'+titles+'</a></li>');
07         })
08     });
09 </script>
10  
11     <div id="noticecon">
12         <ol>
13         </ol>
14     </div>

一般步骤如下:

1. 读取xml文件

1 $.get("xmlfile.xml",function(xml){
2     //xml即为可以读取使用的内容,具体读取见第2点
3 });

2. 读取xml内容

如果读取的xml是来于xml文件,这结合上面的那点,处理如下:

1 $.get("xmlfile.xml",function(xml){   
2     $(xml).find("item").length;   
3 });

如果读取的是xml字符串,则要注意一点,xml字符串的必然被"<xml>"和"</xml>"包围才可以被解析

1 $("<xml><root><item></item></root></xml>").find("item").length;

解析xml内容:

示例xml:

01 <?xml version="1.0" encoding="utf-8" ?>
02 <fields>
03   <field Name="Name1">
04     <fieldname>dsname</fieldname>
05     <datatype>字符</datatype>
06   </field>
07   <field Name="Name2">
08     <fieldname>dstype</fieldname>
09     <datatype>字符</datatype>
10   </field>
11 </fields>

以下是解析示例代码:

1 $(xml).find("field").each(function() {
2     var field = $(this);
3     var fName = field.attr("Name");//读取节点属性
4     var dataType = field.find("datatype").text();//读取子节点的值
5 });

 

 

 

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jquery解析xml</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
 $(function(){
  $.post('books.xml',function(data){
   //查找所有的book节点
   var s="";
   $(data).find('book').each(function(i){
    var id=$(this).attr('id');
    var name=$(this).children('name').text();
    var author=$(this).children('author').text();
    var price=$(this).children('price').text();
    s+=id+"    "+name+"    "+author+"    "+price+"<br>";
   });
   $('#mydiv').html(s);
  });
 });
</script>
</head>
<body>
 <div id='mydiv'></div>
</body>
</html>
 
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <book id="1">
  <name>深入浅出extjs</name>
  <author>张三</author>
  <price>88</price>
 </book>
 <book id="2">
  <name>锋利的jQuery</name>
  <author>李四</author>
  <price>99</price>
 </book>
 <book id="3">
  <name>深入浅出flex</name>
  <author>王五</author>
  <price>108</price>
 </book>
 <book id="4">
  <name>java编程思想</name>
  <author>钱七</author>
  <price>128</price>
 </book>
</root>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics