五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 建站教程 > XML 教程 > XML Parser

XML Parser

此節(jié)有 227 人學(xué)習(xí)過     參與評(píng)論

所有現(xiàn)代瀏覽器都內(nèi)建了供讀取和操作 XML 的 XML 解析器。

解析器把 XML 轉(zhuǎn)換為 XML DOM 對(duì)象 - 可通過 JavaScript 操作的對(duì)象。

實(shí)例

365jz 提供的實(shí)例是獨(dú)立于瀏覽器和平臺(tái)的。這些例子可以在所有現(xiàn)代瀏覽器中運(yùn)行。

加載并解析 XML 文件
加載并解析 XML 字符串

解析 XML

所有現(xiàn)代瀏覽器都有讀取和操作 XML 的內(nèi)建 XML 解析器。

解析器把 XML 載入內(nèi)存,然后把它轉(zhuǎn)換為可通過 JavaScript 訪問的 XML DOM 對(duì)象。

您將在本教程的下一節(jié)中學(xué)習(xí)更多有關(guān) XML DOM 的知識(shí)。

微軟的 XML 解析器與其他瀏覽器中的解析器之間,存在一些差異。微軟的解析器支持 XML 文件和 XML 字符串(文本)的加載,而其他瀏覽器使用單獨(dú)的解析器。不過,所有的解析器都包含遍歷 XML 樹、訪問插入及刪除節(jié)點(diǎn)(元素)及其屬性的函數(shù)。

在本教程中,我們將為您展示如何創(chuàng)建可同時(shí)工作于 Internet Explorer 和其他瀏覽器中的腳本。

注釋:當(dāng)我們談及 XML 解析,我們常常會(huì)使用有關(guān) XML 元素的術(shù)語:節(jié)點(diǎn)。

解析 XML 文檔

下面的代碼片段把 XML 文檔解析到 XML DOM 對(duì)象中:

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

其他方法 1:通過微軟的 XML 解析器來加載 XML

微軟的 XML 解析器內(nèi)建于 Internet Explorer 5 以及更高的版本中。

下面的 JavaScript 片段把一個(gè) XML 文檔載入解析器中:

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");
  1. 上面代碼的第一個(gè)行創(chuàng)建一個(gè)空的微軟 XML 文檔對(duì)象。
  2. 第二行關(guān)閉異步加載,這樣確保在文檔完全加載之前解析器不會(huì)繼續(xù)腳本的執(zhí)行。
  3. 第三行告知解析器加載名為 "note.xml" 的 XML 文檔。

其他方法 2:在 Firefox 及其他瀏覽器中的 XML 解析器

下面的 JavaScript 片段把 XML 文檔 ("note.xml") 載入解析器:

var xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("note.xml");
  1. 上面代碼的第一個(gè)行創(chuàng)建一個(gè)空的 XML 文檔對(duì)象。
  2. 第二行關(guān)閉異步加載,這樣確保在文檔完全加載之前解析器不會(huì)繼續(xù)腳本的執(zhí)行。
  3. 第三行告知解析器加載名為 "note.xml" 的 XML 文檔。

解析 XML 字符串

下面的 JavaScript 代碼片段把 XML 字符串解析到 XML DOM 對(duì)象中(把字符串 txt 載入解析器):

txt="<bookstore><book>";
txt=txt+"<title>Everyday Italian</title>";
txt=txt+"<author>Giada De Laurentiis</author>";
txt=txt+"<year>2005</year>";
txt=txt+"</book></bookstore>";

if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  }
else // Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(txt);
  }

注釋:Internet Explorer 使用 loadXML() 方法來解析 XML 字符串,而其他瀏覽器使用 DOMParser 對(duì)象。

注釋:loadXML() 方法用于加載字符串(文本),load() 用于加載文件。

跨域訪問

出于安全方面的原因,現(xiàn)代的瀏覽器不允許跨域的訪問。

這意味著,網(wǎng)頁以及它試圖加載的 XML 文件,都必須位于相同的服務(wù)器上。

365jz 的實(shí)例所打開的 XML 文件位于 365jz 的域上。

假如你打算在自己的網(wǎng)頁上使用上面的例子,則必須把 XML 文件放到自己的服務(wù)器上。否則,xmlDoc.load() 將產(chǎn)生錯(cuò)誤 "Access is denied"。

XML DOM

在本教程的下一章節(jié),您將學(xué)習(xí)如何訪問 XML 文檔對(duì)象 (XML DOM) 并取回?cái)?shù)據(jù)。

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (227人查看0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)