XML教學 | XML DOM
XML DOM
是什麼?
簡單來說Document Object Model (DOM)
定義了訪問和操作文件的標準。
網頁是由瀏覽器負責運行,因此瀏覽器其實就是一種編譯器負責去編譯我們寫的網頁程式,
有很多間公司都在設計瀏覽器,所以需要先定好一個規則讓各個瀏覽器都必須要按照這個規則去編譯,
也因此W3C
定義了非常多的網頁規則好讓各大瀏覽器可以按照這些規則去設計瀏覽器,其中DOM
就是其中的一個定義。
註:W3C Document Object Model (DOM) 是一個平台和語言中立的接口,允許程式和腳本動態訪問和更新文件的內容、結構和樣式。
HTML DOM
定義了訪問和操作HTML
檔的標準方式。它將HTML
檔呈現為樹結構。XML DOM
定義了訪問和操作XML
文件的標準方式。它將XML
檔呈現為樹結構。註:圖片截取於w3schools - XML Tree
注:對於使用
HTML
或XML
的任何人來說,簡單的理解DOM
是必須的。
HTML DOM
範例
HTML
元素都可以通過HTML DOM
訪問。
範例使用 w3schools - Try xml change html
1 | <h1 id="demo">This is a Heading</h1> |
範例<html>
說明:
- 建立一個
h1
區塊,並設定id
為demo
。1
<h1 id="demo">This is a Heading</h1>
- 新增一個
button
,並在按下按鈕後觸發執行document.getElementById
取得Element
對象,再呼叫innerHTML
設置HTML
內容為Hello World!
,1
<button type="button" onclick="document.getElementById('demo').innerHTML = 'Hello World!'">Click Me! </button>
執行效果:
XML DOM
範例
通過XML DOM
訪問所有XML
元素。
1 |
|
以下程式碼就是從XML
檔中取得第一個<title>
元素的值:
1 | xmlhttp = new XMLHttpRequest(); |
特別說明以下這段程式碼:
1 | xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; |
- 從
xmlDoc
呼叫getElementsByTagName("title")[0]
方法,取得第一個title
元素。1
<title lang="en">Everyday Italian</title>
- 然後在乎叫
childNodes[0]
去得這個元素的子元素,這邊的子元素是”text”的這個元素。1
Everyday Italian
- 最後呼叫
nodeValue
要取得這個Text
裡面的值。1
Everyday Italian
註:可以嘗試看看
getElementsByTagName("title")[0]
改為getElementsByTagName("title")[1]
,看是否是取得Harry Potter
。
執行效果:
範例使用 w3schools - Try dom load xml text
1 |
|
範例<script>
與<html>
,在上一章節中就已經有完善的說明:參考
執行效果:
結語
此章節「簡單」介紹了XML DOM
,使用簡單範例其訪問與操作。
透過更多的互動,更了解如何操作XML
檔。至於更深入的XML DOM
會放在很後面才會進行介紹和教學,莫急莫急。
下一章節將會介紹XML Namespaces
的部份。
註:以上參考了
iT 邦幫忙- Andy Chen, Day03-深入理解網頁架構:DOM
MDN - Document.getElementById
MDN - Element.innerHTML
w3resource.com - XML DOM
RUNOOB.COM - XML DOM
維基百科-XML
Family with 220 icons by inipagi