首頁 web前端 js教程 在jQuery中處理XML資料的大致方法_jquery

在jQuery中處理XML資料的大致方法_jquery

May 16, 2016 pm 03:45 PM
jquery xml

XML 全稱為可擴展標記語言,其檔案結構與HTML 類似,但是差異也很明顯,HTML 只能使用已經定義的標籤,如title, body, span 等,標籤種類是有限的,但是XML 除了可以使用HTML 的所有標籤,也可以自己隨意自訂標籤,如person, name, sex, age 等,而且XML 中的標籤屬性名稱,也可以隨意自訂。另外二者用途方面也有明顯差異,HTML 主要用來展示數據,XML 則著重於數據的儲存與傳輸。例如下面這個簡單的 XML 文件用以儲存員工資訊:

<员工>
 <姓名>麻花疼</姓名>
 <性别>男</性别>
 <年龄>40</年龄>
 <职位>疼逊CEO</职位>
</员工>

登入後複製

以下本文簡單介紹如何使用 jQuery 載入一個 XML 檔案並從中取得自己想要的資料。
準備 XML 文件及測試資料

假設我們現在要建立一個包含人員資訊的XML 文檔,該XML 文檔要能反映其姓名、所在公司、公司簡介、公司產品簡介幾個信息,那麼我們可以把XML 設計成如下樣式:

<?xml version="1.0" encoding="utf-8" ?>
<Persons>
 <Person FullName="Bill Gates">
 <Corporation>Microsoft</Corporation>
 <Description>The largest software company</Description>
 <Products>Windows series OS, SQL Server Database, XBox 360...</Products>
 </Person>

 <Person FullName="Jobs">
 <Corporation>Apple</Corporation>
 <Description>The famous software company</Description>
 <Products>Macintosh, iPhone, iPod, iPad...</Products>
 </Person>

 <Person FullName="Larry Page">
 <Corporation>Google</Corporation>
 <Description>the largest search engine</Description>
 <Products>Google search, Google Adsense, Gmail...</Products>
 </Person>
</Persons>

登入後複製

簡單分析一下這個 XML 文件,其中第一行 是聲明此文檔為 XML 文檔,且文字編碼為 utf-8。第二行及最後一行Persons 為文件的根元素,然後每個Person 元素即表示每個人,姓名儲存在Person 元素的FullName 屬性中,Corporation 元素用來儲存所在公司名稱,Description 元素用來儲存公司簡介, Products 元素用來儲存公司產品簡介。至此,該文件裡麵包含了比爾蓋茲、賈伯斯、拉里佩奇三位 IT 界大佬的資訊。
用 jQuery 解析此 XML 文件

首先要用$.get()方法載入 XML 文件,然後用find()方法找到所有 Person 元素,再用 each() 方法進行遍歷,程式碼如下:

<script type="text/javascript">
jQuery(document).ready(function() {
 /* 先用 $.get 方法载入 XML 文件 */
 $.get("EmployeesInformation.xml", function(xmlData) {
 /* 我们要讲得到的数据放入一个表格里面,这里定义一个表格字符窜 */
 var htmlData = "<table border='1'>";

 /* 找到 Person 元素,然后用 each 方法进行遍历 */
 $(xmlData).find("Person").each(function() {
  var Person = $(this); /* 将当前元素复制给 Person */
  var FullName = Person.attr("FullName"); /* 获取 Person 的 FullName 属性 */
  var Corporation = Person.find("Corporation").text(); /* 获取 Person 中子元素 Corporation 的值 */
  var Description = Person.find("Description").text(); /* 获取 Person 中子元素 Description 的值 */
  var Products = Person.find("Products").text(); /* 获取 Person 中子元素 Products 的值 */

  /* 将得到的数据,放到表格的一行中 */
  htmlData += "<tr>";
  htmlData += " <td>" + FullName + "</td>";
  htmlData += " <td>" + Corporation + "</td>";
  htmlData += " <td>" + Description + "</td>";
  htmlData += " <td>" + Products + "</td>";
  htmlData += "</tr>";
 });
 
 //完成表格字符窜
 htmlData += "</table>";
 //将表格放到 body 中
 $("body").append(htmlData);
 });
});
</script>

登入後複製

簡單解釋這段程式碼,由於此XML 文件相對簡單,所以這段程式碼也比較簡短,程式碼中$.get()方法的第一個參數為XML 檔案位址,第二個參數是一個回調函數,回呼函數中參數xmlData 即為XML 檔案中的資料。在這個範例中,我們打算 XML 中的資料以表格的形式顯示在 HTML 中,所以先建立一個表格字串 htmlData 先。

緊接著,用find()方法,找出所有名為Person 的元素,因為每個Person 元素即表示一個人,然後再用each() 方法進行遍歷,把遍歷到的元素賦個一個變數Person 。用Person.attr()方法去除元素的FullName 屬性,也就是人員的姓名,再用find()方法找到其子元素Corporation,Description 和Products 並傳回它們的文字內容,並用tr 和td 標籤將它們包裝在表格的一行裡面。最後完成表格字串,並將表格加入到 body 標籤中。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

兩個點博物館:邦格荒地地點指南
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

jQuery中如何使用PUT請求方式? jQuery中如何使用PUT請求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請求方式?

jQuery如何移除元素的height屬性? jQuery如何移除元素的height屬性? Feb 28, 2024 am 08:39 AM

jQuery如何移除元素的height屬性?

jQuery小技巧:快速修改頁面所有a標籤的文本 jQuery小技巧:快速修改頁面所有a標籤的文本 Feb 28, 2024 pm 09:06 PM

jQuery小技巧:快速修改頁面所有a標籤的文本

使用jQuery修改所有a標籤的文字內容 使用jQuery修改所有a標籤的文字內容 Feb 28, 2024 pm 05:42 PM

使用jQuery修改所有a標籤的文字內容

XML 解析的 Java 函式庫比較:尋找最佳解決方案 XML 解析的 Java 函式庫比較:尋找最佳解決方案 Mar 09, 2024 am 09:10 AM

XML 解析的 Java 函式庫比較:尋找最佳解決方案

如何使用 PHP 函數處理 XML 資料? 如何使用 PHP 函數處理 XML 資料? May 05, 2024 am 09:15 AM

如何使用 PHP 函數處理 XML 資料?

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

您如何在PHP中解析和處理HTML/XML?

了解jQuery中eq的作用及應用場景 了解jQuery中eq的作用及應用場景 Feb 28, 2024 pm 01:15 PM

了解jQuery中eq的作用及應用場景

See all articles