title: 《鋒利的jQuery》十三、jQuery加載并解析XML
date: 2017-08-23 22:36:20
tags: 鋒利的jQuery
語(yǔ)法
XML(eXtensible Markup Language),于HTML一樣,都屬于SGML標(biāo)準(zhǔn)通用語(yǔ)言。
XML的語(yǔ)法如下:
任何起始標(biāo)簽都必須有一個(gè)結(jié)束標(biāo)簽
標(biāo)簽必須按照合理的順序嵌套,和HTML相同的道理。
所有屬性都需要有值,并且需要在值上加上雙引號(hào)。
XML文件只能有一個(gè)頂層元素,好比HTML的
<html>元素。
很多時(shí)候XML不能正常解析是因?yàn)镃ontent-Type沒(méi)有設(shè)置好。要設(shè)置為text/xml,否則會(huì)按照默認(rèn)的text/html方式處理,導(dǎo)致解析失敗
解析XML
解析XML文檔與解析DOM一樣,也可以用find()、children()等函數(shù)來(lái)解析和用each()方法來(lái)進(jìn)行遍歷,另外也可以用text()和attr()方法來(lái)獲取節(jié)點(diǎn)文本和屬性(類(lèi)似HTML的行內(nèi)屬性)。
success: function(xml){
var frag = $('<ul></ul>')
$(xml).find('student').each(function(){ // 查找所有<student>節(jié)點(diǎn)并且遍歷
var id = $(this).children('id'); // 取得所有<id></id>子節(jié)點(diǎn)
var id_value = id.text(); // 取得子節(jié)點(diǎn)文本
var email = $(this).attr('email'); // 獲取<student>元素上的email屬性
frag.append('<li>' + id_value + '-' + email + '</li>'); // 構(gòu)造html字符串
})
frag.appendTo('#load'); // 最后添加到html文檔中
}