最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析 XML DOM

大多數(shù)瀏覽器都內(nèi)建了供讀取和操作 XML 的 XML 解析器。

解析器把 XML 轉(zhuǎn)換為 JavaScript 可存取的對象。

實例

W3School 提供的實例獨立于瀏覽器和平臺。這些實例可在所有現(xiàn)代瀏覽器中運行。

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

解析 XML

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

解析器把 XML 讀入內(nèi)存,并把它轉(zhuǎn)換為可被 JavaScript 訪問的 XML DOM 對象。

微軟的 XML 解析器與其他瀏覽器中的解析器是有差異的。微軟的解析器支持對 XML 文件和 XML 字符串(文本)的加載,而其他瀏覽器使用單獨的解析器。不過,所有的解析器都含有遍歷 XML 樹、訪問、插入及刪除節(jié)點的函數(shù)。

在本教程中,我們將為您講解如何創(chuàng)建可在 IE 及其他瀏覽器中運行的腳本。

通過微軟的 XML 解析器加載 XML

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

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

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("books.xml");

代碼解釋:

  • 第一行創(chuàng)建空的微軟 XML 文檔對象
  • 第二行關(guān)閉異步加載,這樣可確保在文檔完整加載之前,解析器不會繼續(xù)執(zhí)行腳本
  • 第三行告知解析器加載名為 "books.xml" 的文檔

下面的 JavaScript 片段把名為 txt 的字符串載入解析器中:

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

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

在 Firefox 及其他瀏覽器中的 XML 解析器

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

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("books.xml");

代碼解釋:

  • 第一行創(chuàng)建空的 XML 文檔對象
  • 第二行關(guān)閉異步加載,這樣可確保在文檔完整加載之前,解析器不會繼續(xù)執(zhí)行腳本
  • 第三行告知解析器加載名為 "books.xml" 的文檔

下面的 JavaScript 片段把名為 txt 的字符串載入解析器中:

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");

代碼解釋:

  • 第一行創(chuàng)建一個空的 XML 文檔對象
  • 第二行告知解析器加載名為 txt 的字符串

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

解析 XML 文件 - 一個跨瀏覽器的實例

下面的例子把 XML 文檔 ("books.xml") 載入 XML 解析器:

<html>
<body>
<script type="text/javascript">
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  xmlDoc.async=false;
  xmlDoc.load("books.xml");
  document.write("xmlDoc is loaded, ready for use");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>

TIY

Error: Access Across Domains

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

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

W3School 的實例所打開的 XML 文件位于 W3School 的域上。

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

解析 XML 字符串 - 一個跨瀏覽器的實例

下面的代碼加載并解析了一個 XML 字符串:

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";

try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
document.write("xmlDoc is loaded, ready for use");
</script>
</body>
</html>

TIY

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

张家港市| 高邑县| 扶风县| 吉林省| 安义县| 宿州市| 中西区| 汨罗市| 英山县| 多伦县| 大关县| 井研县| 陈巴尔虎旗| 三明市| 加查县| 平阴县| 西畴县| 兰考县| 丰宁| 纳雍县| 锦州市| 吉首市| 横山县| 桂阳县| 怀集县| 铁力市| 彭泽县| 岱山县| 苏尼特左旗| 巴塘县| 碌曲县| 阿鲁科尔沁旗| 余干县| 万荣县| 平泉县| 繁昌县| 繁昌县| 南安市| 宣武区| 故城县| 普陀区|