jquery ajax解析XML檔案資料方法詳解

來源:互聯網
上載者:User

第一種方案:

 代碼如下 複製代碼

<script type="text/javascript">
$(document).ready(function() {
 $.ajax({
    url: '/cgi/test.xml',
    dataType: 'xml',
    success: function(data){
     //console.log(data);
    $(data).find("channel").find("item").each(function(index, ele) {
    var titles = $(ele).find("title").text();
    var links = $(ele).find("link").text();
    console.log(titles+'-----');
    $("#noticecon").find('ol').append('<li><a href="'+links+'">'+titles+'</a></li>');
   });
  }
 });
})
</script>

    <div id="noticecon">
  <ol>
  </ol>
 </div>

第二種方案:

 代碼如下 複製代碼

<script type="text/javascript">
 $.get("/cgi/test.xml", function(data){
  $(data).find('channel').find('item').each(function(index, ele){
   var titles = $(ele).find('title').text();
   var links = $(ele).find('link').text();
   $("#noticecon").find('ol').append('<li><a href="'+links+'">'+titles+'</a></li>');
  })
 });
</script>

    <div id="noticecon">
  <ol>
  </ol>
 </div>

一般步驟如下:

 代碼如下 複製代碼

$.get("xmlfile.xml",function(xml){
 //xml即為可以讀取使用的內容,具體讀取見第2點
});

2. 讀取xml內容

如果讀取的xml是來於xml檔案,這結合上面的那點,處理如下:

 代碼如下 複製代碼

$.get("xmlfile.xml",function(xml){
 //xml即為可以讀取使用的內容,具體讀取見第2點
});

如果讀取的是xml字串,則要注意一點,xml字串的必然被"<xml>"和"</xml>"包圍才可以被解析

 代碼如下 複製代碼

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


解析xml內容:

樣本xml:

 代碼如下 複製代碼

<?xml version="1.0" encoding="utf-8" ?>
<fields>
  <field Name="Name1">
    <fieldname>dsname</fieldname>
    <datatype>字元</datatype>
  </field>
  <field Name="Name2">
    <fieldname>dstype</fieldname>
    <datatype>字元</datatype>
  </field>
</fields>

以下是解析範例程式碼:

 代碼如下 複製代碼

$(xml).find("field").each(function() {
 var field = $(this);
 var fName = field.attr("Name");//讀取節點屬性
 var dataType = field.find("datatype").text();//讀取子節點的值
});

下面看個簡單一實例

 代碼如下 複製代碼

XMLFile.xml


<?xml version="1.0" encoding="utf-8" ?>
<msglist>
<msg name="11">
<id>1</id>
<content>content1</content>
</msg>
<msg name="22">
<id>2</id>
<content>content2</content>
</msg>
</msglist>
 

jqXmlFirst.aspx


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="jqXmlFirst.aspx.cs" Inherits="jqueryXml_jqXmlFirst" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>jQuery操作Xml入門</title>
<script type="text/javascript" src="../js/jquery-1.2.6.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
url:"XMLFile.xml",
dataType:"xml",
error: function(xml){
alert('Error loading XML document'+xml);
},
success:function(xml){
$(xml).find("msglist > msg").each(function(){
alert($(this).find("content").text());//each是迴圈執行,即多次彈出。
alert($(this).attr("name"));//取得屬性的方法
});
}
})
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.