鍍金池/ 教程/ HTML/ XML 文檔對象模型
XML 屬性
XML 語法
XML 注釋
XML 文檔對象模型
XML 數(shù)據(jù)庫
XML 樹結構
XML 文檔類型定義(DTDs)
XML 之 CDATA 片段
XML 解析器
XML 編輯器
XML 概述
XML 字符實體
XML 編碼
XML 驗證
XML 文檔
XML 聲明
XML 元素
XML 命名空間
XML 閱讀器
XML 處理程序
XML 模式
XML 空白
XML 標簽
XML 處理指令

XML 文檔對象模型

文檔對象模型(DOM)是 XML 的基礎。XML 文檔有一個信息層次結構單位,被稱作節(jié)點;DOM 是描述這些節(jié)點和它們之間關系的一種方式。

DOM 文檔就是一個節(jié)點集合或者按照層次結構組織的信息塊。這個層次結構允許開發(fā)人員導航這個節(jié)點樹來查詢特定的信息。由于它基于信息層次結構,DOM 也被認為是_基于節(jié)點樹_的。

另一方面,XML DOM 還提供了一個 API,允許開發(fā)者在節(jié)點樹的任意位置添加,編輯,移動或者移除節(jié)點,以便創(chuàng)建應用程序。

示例

下面的示例(sample.htm)將一個 XML 文檔("address.xml")解析為一個 XML DOM 對象,然后用 JavaScript 提取了一些信息:

<!DOCTYPE html>
<html>
<body>
<h1>TutorialsPoint DOM example </h1>
<div>
<b>Name:</b> <span id="name"></span><br>
<b>Company:</b> <span id="company"></span><br>
<b>Phone:</b> <span id="phone"></span>
</div>
<script>
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","/xml/address.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.getElementById("name").innerHTML=
xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
document.getElementById("company").innerHTML=
xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;
document.getElementById("phone").innerHTML=
xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;
</script>
</body
</html>

address.xml 的內(nèi)容如下:

<?xml version="1.0"?>
<contact-info>
    <name>Tanmay Patil</name>
    <company>TutorialsPoint</company>
    <phone>(011) 123-4567</phone>
</contact-info>

我們可以把這兩個文 sample.htmaddress.xml 件保存到同一目錄 /xml 中,然后通過在瀏覽器中打開的方式執(zhí)行 sample.htm 文件。它應該生成如下所示結果:

http://wiki.jikexueyuan.com/project/xml/images/xml_dom_example.png" alt="XML DOM Example" />

這里,可以看到我們提取了每個子節(jié)點并顯示了它們的值。

上一篇:XML 之 CDATA 片段下一篇:XML 模式