從屌絲到架構(gòu)師的飛越(JavaScript篇)-JavaScript Ajax解析XML

一、介紹

這節(jié)課呢台猴,我們來(lái)了解的是Ajax解析XML朽合,

AJAX 可用來(lái)與 XML 文件進(jìn)行交互式通信俱两。

二、知識(shí)點(diǎn)介紹

1曹步、ajax XML實(shí)例

2宪彩、ajax服務(wù)器頁(yè)面

三、上課對(duì)應(yīng)視頻的說(shuō)明文檔

1讲婚、AJAX XML 實(shí)例

下面的例子將演示網(wǎng)頁(yè)如何使用 AJAX 來(lái)讀取來(lái)自 XML 文件的信息:

實(shí)例解釋 - loadXMLDoc() 函數(shù)

當(dāng)用戶點(diǎn)擊上面的“獲得 CD 信息”這個(gè)按鈕毯焕,就會(huì)執(zhí)行 loadXMLDoc() 函數(shù)。

loadXMLDoc() 函數(shù)創(chuàng)建 XMLHttpRequest 對(duì)象磺樱,添加當(dāng)服務(wù)器響應(yīng)就緒時(shí)執(zhí)行的函數(shù)纳猫,并將請(qǐng)求發(fā)送到服務(wù)器。

當(dāng)服務(wù)器響應(yīng)就緒時(shí)竹捉,會(huì)構(gòu)建一個(gè) HTML 表格芜辕,從 XML 文件中提取節(jié)點(diǎn)(元素),最后使用已經(jīng)填充了 XML 數(shù)據(jù)的 HTML 表格來(lái)更新 txtCDInfo 占位符:

function loadXMLDoc(url)

{

var xmlhttp;

var txt,xx,x,i;

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.onreadystatechange=function()

{

if (xmlhttp.readyState==4 && xmlhttp.status==200)

{

txt="<table border='1'><tr><th>Title</th><th>Artist</th></tr>";

x=xmlhttp.responseXML.documentElement.getElementsByTagName("CD");

for (i=0;i<x.length;i++)

{

txt=txt + "<tr>";

xx=x[i].getElementsByTagName("TITLE");

{

try

{

txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";

}

catch (er)

{

txt=txt + "<td> </td>";

}

}

xx=x[i].getElementsByTagName("ARTIST");

{

try

{

txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";

}

catch (er)

{

txt=txt + "<td> </td>";

}

}

txt=txt + "</tr>";

}

txt=txt + "</table>";

document.getElementById('txtCDInfo').innerHTML=txt;

}

}

xmlhttp.open("GET",url,true);

xmlhttp.send();

}

2块差、AJAX 服務(wù)器頁(yè)面

上面這個(gè)例子中使用的服務(wù)器頁(yè)面實(shí)際上是一個(gè) XML 文件侵续,名為 "cd_catalog.xml"。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<style>

table,th,td {

border : 1px solid black;

border-collapse: collapse;

}

th,td {

padding: 5px;

}

</style>

</head>

<body>

<h1>XMLHttpRequest 對(duì)象</h1>

<button type="button" onclick="loadXMLDoc()">獲取我收藏的 CD</button>

<br><br>

<table id="demo"></table>

<script>

function loadXMLDoc() {

var xhttp = new XMLHttpRequest();

xhttp.onreadystatechange = function() {

if (this.readyState == 4 && this.status == 200) {

myFunction(this);

}

};

xhttp.open("GET", "cd_catalog.xml", true);

xhttp.send();

}

function myFunction(xml) {

var i;

var xmlDoc = xml.responseXML;

var table="<tr><th>Artist</th><th>Title</th></tr>";

var x = xmlDoc.getElementsByTagName("CD");

for (i = 0; i <x.length; i++) {

table += "<tr><td>" +

x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +

"</td><td>" +

x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +

"</td></tr>";

}

document.getElementById("demo").innerHTML = table;

}

</script>

</body>

</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末憨闰,一起剝皮案震驚了整個(gè)濱河市状蜗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹉动,老刑警劉巖轧坎,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異泽示,居然都是意外死亡缸血,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門械筛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捎泻,“玉大人,你說(shuō)我怎么就攤上這事埋哟“驶恚” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵赤赊,是天一觀的道長(zhǎng)闯狱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)砍鸠,這世上最難降的妖魔是什么扩氢? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任耕驰,我火速辦了婚禮爷辱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己饭弓,他們只是感情好双饥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弟断,像睡著了一般咏花。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阀趴,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天昏翰,我揣著相機(jī)與錄音,去河邊找鬼刘急。 笑死棚菊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叔汁。 我是一名探鬼主播统求,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼据块!你這毒婦竟也來(lái)了码邻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤另假,失蹤者是張志新(化名)和其女友劉穎像屋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體边篮,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡开睡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苟耻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篇恒。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凶杖,靈堂內(nèi)的尸體忽然破棺而出胁艰,到底是詐尸還是另有隱情,我是刑警寧澤智蝠,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布腾么,位于F島的核電站,受9級(jí)特大地震影響杈湾,放射性物質(zhì)發(fā)生泄漏解虱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一漆撞、第九天 我趴在偏房一處隱蔽的房頂上張望殴泰。 院中可真熱鬧于宙,春花似錦、人聲如沸悍汛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)离咐。三九已至谱俭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宵蛀,已是汗流浹背昆著。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留术陶,地道東北人宣吱。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瞳别,于是被迫代替她去往敵國(guó)和親征候。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容