最新的Web開發教程
 

XML DOM教程


DOM定義了訪問和操作文檔的標準。

該XML DOM提供了一個XML文檔的樹狀結構。

在HTML DOM提供了一個HTML文檔的樹狀結構。

了解DOM是任何與HTML或XML的工作是必須的。

XML DOM樹例子

DOM節點樹


DOM是什麼?

DOM定義了訪問,如XML和HTML文檔的標準:

"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."

該DOM分為3個不同的部分/層次:

  • Core DOM -為任何結構化文檔標準模型
  • XML DOM -為XML文檔的標準模式
  • HTML DOM -為HTML文檔標準模型

DOM定義的objects and properties的所有文檔元素,以及methods (interface)來訪問它們。


在HTML DOM

HTML DOM定義了訪問和操作HTML文檔的標準方法。

所有的HTML元素可以通過HTML DOM訪問。

HTML DOM定義了objects, properties and methods所有的HTML元素。


改變HTML元素的值

此示例將使用id =“演示”HTML元素的值:

<h1 id="demo">This is a Heading</h1>

<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
試一試»

這個例子改變第一的值<h1> HTML文檔中的元素:

<h1>This is a Heading</h1>

<h1>This is a Heading</h1>

<script>
document.getElementsByTagName("h1")[0].innerHTML = "Hello World!";
</script>
試一試»

注意:即使HTML文檔containes只有一個<h1>元素你還必須指定數組索引[0],因為getElementsByTagName()方法總是返回一個數組。

你可以學到了很多有關我們的HTML DOM 的JavaScript教程


該XML DOM

XML DOM定義了訪問和操作XML文檔的標準方法。

所有的XML元素可以通過XML DOM來訪問。

XML DOM定義了objects, properties and methods所有的XML元素。

該XML DOM是:

  • 對XML標準的對象模型
  • 一個標準的編程接口XML
  • 平台和語言無關
  • W3C標準

換句話說, The XML DOM is a standard for how to get, change, add, or delete XML elements.


獲取XML元素的值

此代碼檢索第一個文本值<title> XML文檔中的元素:

txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

載入一個XML文件

下面在實施例中使用的XML文件是的books.xml

這個例子讀取"books.xml"載入xmlDoc中,並檢索第一文本值<title>中的books.xml元素:

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
    myFunction(xhttp);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    document.getElementById("demo").innerHTML =
    xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
}
</script>

</body>
</html>
試一試»

例子解釋:

  • xmlDoc -由解析器創建的XML DOM對象。
  • getElementsByTagName("title")[0] -獲得第<title>元素
  • childNodes[0] -中的第一個孩子<title>元素(文本節點)
  • nodeValue -節點的值(the text itself)

載入一個XML字符串

這個例子加載一個文本字符串轉換為XML DOM對象,並提取從中用JavaScript的信息:

<html>
<body>

<p id="demo"></p>

<script>
var text, parser, xmlDoc;

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

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

document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue ;
</script>

</body>
</html>
試一試»

編程接口

DOM建模XML作為一套節點對象。 節點可以用JavaScript或其他編程語言來訪問。 在本教程中,我們使用的JavaScript。

編程接口的DOM是由一組標準的屬性和方法定義的。

Properties通常被稱為東西是(即節點名是“書”)。

Methods通常被稱為東西完成(即刪除“書”)。


XML DOM屬性

這些都是一些典型的DOM屬性:

  • x.nodeName - x的名稱
  • x.nodeValue - x的值
  • x.parentNode - x的父節點
  • x.childNodes - x的子節點
  • x.attributes - x的屬性節點

注:在上面的表中,x是一個節點對象。


XML DOM方法

  • x.getElementsByTagName( name ) -獲取帶有指定標籤名稱的所有元素
  • x.appendChild( node ) -插入一個子節點為x
  • x.removeChild( node ) -刪除從X子節點

注:在上面的表中,x是一個節點對象。