在jQuery中處理XML數(shù)據(jù)的大致方法
XML 全稱為 可擴(kuò)展標(biāo)記語(yǔ)言,其文件結(jié)構(gòu)與 HTML 類似,但是區(qū)別也很明顯,HTML 只能使用已經(jīng)定義的標(biāo)簽,如 title, body, span 等,標(biāo)簽種類是有限的,但是 XML 除了可以使用 HTML 的所有標(biāo)簽,還可以自己隨意定制標(biāo)簽,如 person, name, sex, age 等,而且 XML 中的標(biāo)簽屬性名稱,也可以隨意定制。另外二者用途方面也有明顯區(qū)別,HTML 主要用來(lái)展示數(shù)據(jù),XML 則側(cè)重于數(shù)據(jù)的存儲(chǔ)和傳輸。例如下面這個(gè)簡(jiǎn)單的 XML 文檔用以存儲(chǔ)員工信息:
<員工> <姓名>麻花疼</姓名> <性別>男</性別> <年齡>40</年齡> <職位>疼遜CEO</職位> </員工>
下面本文簡(jiǎn)單介紹如何使用 jQuery 載入一個(gè) XML 文件并從中獲取自己想要的數(shù)據(jù)。
準(zhǔn)備 XML 文檔及測(cè)試數(shù)據(jù)
假設(shè)我們現(xiàn)在要構(gòu)建一個(gè)包含人員信息的 XML 文檔,該 XML 文檔要能反映其姓名、所在公司、公司簡(jiǎn)介、公司產(chǎn)品簡(jiǎn)介幾個(gè)信息,那么我們可以把 XML 設(shè)計(jì)成如下樣式:
<?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>
簡(jiǎn)單分析一下這個(gè) XML 文件,其中第一行 <?xml version="1.0" encoding="utf-8" ?> 是聲明此文檔為 XML 文檔,且文本編碼為 utf-8。第二行及最后一行 Persons 為文檔的根元素,然后每個(gè) Person 元素即表示每個(gè)人,姓名存儲(chǔ)在 Person 元素的 FullName 屬性中,Corporation 元素用來(lái)存儲(chǔ)所在公司名稱,Description 元素用來(lái)存儲(chǔ)公司簡(jiǎn)介,Products 元素用來(lái)存儲(chǔ)公司產(chǎn)品簡(jiǎn)介。至此,該文檔里面包含了比爾·蓋茨、喬布斯、拉里·佩奇三位 IT 界大佬的信息。
用 jQuery 解析此 XML 文檔
首先要用$.get()方法載入 XML 文件,然后用find()方法找到所有 Person 元素,再用 each() 方法進(jìn)行遍歷,代碼如下:
<script type="text/javascript"> jQuery(document).ready(function() { /* 先用 $.get 方法載入 XML 文件 */ $.get("EmployeesInformation.xml", function(xmlData) { /* 我們要講得到的數(shù)據(jù)放入一個(gè)表格里面,這里定義一個(gè)表格字符竄 */ var htmlData = "<table border='1'>"; /* 找到 Person 元素,然后用 each 方法進(jìn)行遍歷 */ $(xmlData).find("Person").each(function() { var Person = $(this); /* 將當(dāng)前元素復(fù)制給 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 的值 */ /* 將得到的數(shù)據(jù),放到表格的一行中 */ 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>
簡(jiǎn)單解釋一下這段代碼,由于此 XML 文檔相對(duì)簡(jiǎn)單,所以這段代碼也比較簡(jiǎn)短,代碼中$.get()方法的第一個(gè)參數(shù)為 XML 文件地址,第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),回調(diào)函數(shù)中參數(shù) xmlData 即為 XML 文件中的數(shù)據(jù)。在此示例中,我們打算 XML 中的數(shù)據(jù)以表格的形式顯示在 HTML 中,所以先構(gòu)建一個(gè)表格字符串 htmlData 先。
緊接著,用find()方法,找到所有名為 Person 的元素,因?yàn)槊總€(gè) Person 元素即表示一個(gè)人,然后再用 each() 方法進(jìn)行遍歷,把遍歷到的元素賦個(gè)一個(gè)變量 Person。用Person.attr()方法去除元素的 FullName 屬性,也就是人員的姓名,再用find()方法找到其子元素 Corporation,Description 和 Products 并返回它們的文本內(nèi)容,并用 tr 和 td 標(biāo)簽將它們包裝在表格的一個(gè)行里面。最后完成表格字符串,并將表格添加到 body 標(biāo)簽中。
- jQuery 解析xml文件
- JQuery解析HTML、JSON和XML實(shí)例詳解
- 使用jquery解析XML的方法
- jQuery+ajax讀取并解析XML文件的方法
- jQuery處理xml格式的返回?cái)?shù)據(jù)(實(shí)例解析)
- jQuery xml字符串的解析、讀取及查找方法
- 一個(gè)很簡(jiǎn)單的jquery+xml+ajax的無(wú)刷新樹(shù)結(jié)構(gòu)(無(wú)css,后臺(tái)是c#)
- JQuery解析XML數(shù)據(jù)的幾個(gè)簡(jiǎn)單實(shí)例
- jQuery讀取XML文件內(nèi)容的方法
- jQuery處理XML文件的幾種方法
- jQuery實(shí)現(xiàn)遍歷XML節(jié)點(diǎn)和屬性的方法示例
相關(guān)文章
CSS+Jquery實(shí)現(xiàn)頁(yè)面圓角框方法大全
前不久做項(xiàng)目,要用到大量的頁(yè)面圓角的框塊,以前實(shí)現(xiàn)的時(shí)候都是用圖片做背景之類的方法,那種方法對(duì)于少數(shù)的還是比較可行的,但是當(dāng)涉及到整個(gè)項(xiàng)目都要用 到這樣的效果時(shí)就顯得不夠優(yōu)化和簡(jiǎn)練了。2009-12-12jQuery實(shí)現(xiàn)多張圖片上傳預(yù)覽(不經(jīng)過(guò)后端處理)
本篇文章主要介紹了jQuery實(shí)現(xiàn)多張圖片上傳預(yù)覽(不經(jīng)過(guò)后端處理)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04jquery將json轉(zhuǎn)為數(shù)據(jù)字典的實(shí)例代碼
這篇文章主要介紹了jquery將json轉(zhuǎn)為數(shù)據(jù)字典的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10jquery.form.js用法之清空f(shuō)orm的方法
這篇文章主要介紹了jquery.form.js清空f(shuō)orm的方法,需要的朋友可以參考下2014-03-03解析jQuery的三種bind/One/Live事件綁定使用方法
本篇文章主要是對(duì)jQuery的三種bind/One/Live事件綁定使用方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12用jquery方法操作radio使其默認(rèn)選項(xiàng)是否
用jquery方法操作,使其默認(rèn)選項(xiàng)是或否,具體實(shí)現(xiàn)如下,喜歡的朋友不妨參考下,或許可以用得到哦2013-09-09jQuery實(shí)現(xiàn)下拉框選擇圖片功能實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)下拉框選擇圖片功能,可實(shí)現(xiàn)帶圖片的下拉列表功能,涉及jquery插件imageselect.js的使用,需要的朋友可以參考下2015-08-08