DOM (Document Object Model,文檔對(duì)象模型)定義了訪問(wèn)和操作文檔的標(biāo)準(zhǔn)方法。
XML DOM (XML Document Object Model) 定義了訪問(wèn)和操作 XML 文檔的標(biāo)準(zhǔn)方法。
DOM 把 XML 文檔作為樹(shù)結(jié)構(gòu)來(lái)查看。能夠通過(guò) DOM 樹(shù)來(lái)訪問(wèn)所有元素。可以修改或刪除它們的內(nèi)容,并創(chuàng)建新的元素。元素,它們的文本,以及它們的屬性,都被認(rèn)為是節(jié)點(diǎn)。
在下面的例子中,我們使用 DOM 引用從 <to> 元素中獲取文本:
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
您可以在 365jz 的 XML DOM 教程 中學(xué)習(xí)更多相關(guān)知識(shí)。
HTML DOM (HTML Document Object Model) 定義了訪問(wèn)和操作 HTML 文檔的標(biāo)準(zhǔn)方法。
可以通過(guò) HTML DOM 訪問(wèn)所有 HTML 元素。
在下面的例子中,我們使用 DOM 引用來(lái)改變 id="to" 的 HTML 元素的文本:
document.getElementById("to").innerHTML=
您可以在 365jz 的 HTML DOM 教程 中學(xué)習(xí)更多相關(guān)知識(shí)。
下列代碼把一個(gè) XML 文檔 ("note.xml") 載入 XML 解析器中:
<html> <body> <h1>365jz.com.cn Internal Note</h1> <p><b>To:</b> <span id="to"></span><br /> <b>From:</b> <span id="from"></span><br /> <b>Message:</b> <span id="message"></span> <script type="text/javascript"> 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","note.xml",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("to").innerHTML= xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from").innerHTML= xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue; document.getElementById("message").innerHTML= xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue; </script> </body> </html>
輸出:
365jz.com.cn Internal Note To: George From: John Message: Don't forget the meeting!
如需從 XML 中提取文本 "John",語(yǔ)法是:
getElementsByTagName("from")[0].childNodes[0].nodeValue
在上例中,只有一個(gè) <from> 標(biāo)簽,但是仍然需要規(guī)定數(shù)組的下標(biāo) [0],這是因?yàn)?getElementsByTagName() 方法會(huì)返回包含所有 <from> 節(jié)點(diǎn)的數(shù)組。
下面的代碼加載并解析一個(gè) XML 字符串:
<html>
<body>
<h1>365jz.com.cn Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span></p>
<script>
txt="<note>";
txt=txt+"<to>George</to>";
txt=txt+"<from>John</from>";
txt=txt+"<heading>Reminder</heading>";
txt=txt+"<body>Don't forget the meeting!</body>";
txt=txt+"</note>";
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);
}
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
輸出:
365jz.com.cn Internal Note To: George From: John Message: Don't forget the meeting!
注釋:Internet Explorer 使用 loadXML() 方法來(lái)解析 XML 字符串,而其他瀏覽器使用 DOMParser 對(duì)象。
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇