XML DOM


XML DOM

XML 的基础是文档对象模型(DOM),一个 DOM 文档是一组层次组织的节点或信息块,通过这个层次结构开发人员可以在导航树中寻找特定信息。


DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法。


XML DOM

XML DOM(XML Document Object Model)定义了访问和操作 XML 文档的标准方法。

XML DOM 把 XML 文档作为树结构来查看。

所有元素可以通过 DOM 树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。


HTML DOM

HTML DOM 定义了访问和操作 HTML 文档的标准方法。

所有 HTML 元素可以通过 HTML DOM 来访问。


加载一个 XML 文件 - 跨浏览器实例

下面的实例把 XML 文档("note.xml")解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:

实例

<html>  
<body>  
<h1>CodingDicts Internal Note</h1>  
<div>  
<b>To:</b> <span id="to"></span><br />  
<b>From:</b> <span id="from"></span><br />  
<b>Message:</b> <span id="message"></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","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>

重要注释!

如需从上面的 XML 文件("note.xml")的 元素中提取文本 "Tove",语法是:

getElementsByTagName("to")[0].childNodes[0].nodeValue

请注意,即使 XML 文件只包含一个 元素,您仍然必须指定数组索引 [0]。这是因为 getElementsByTagName() 方法返回一个数组。


加载一个 XML 字符串 - 跨浏览器实例

下面的实例把 XML 字符串解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:

实例

<html>  
<body>  
<h1>CodingDicts Internal Note</h1>  
<div>  
<b>To:</b> <span id="to"></span><br />  
<b>From:</b> <span id="from"></span><br />  
<b>Message:</b> <span id="message"></span>  
</div>  

<script>  
txt="<note>";  
txt=txt+"<to>Tove</to>";  
txt=txt+"<from>Jani</from>";  
txt=txt+"<heading>Reminder</heading>";  
txt=txt+"<body>Don't forget me this weekend!</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>

在下一节内容中,你将了解如何在 HTML 页面中显示 XML 数据。