XML DOM 介绍

来源:互联网 发布:淘宝联盟旧版本5.2 编辑:程序博客网 时间:2024/06/06 15:50

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


XML DOM

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

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

在下面的例子中,我们使用 DOM 引用从 <to> 元素中获取文本:

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
  • xmlDoc -由解析器创建的 XML 文档
  • getElementsByTagName("to")[0] - 第一个 <to> 元素
  • childNodes[0] - <to> 元素的第一个子元素(文本节点)
  • nodeValue - 节点的值(文本本身)


HTML DOM

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

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

在下面的例子中,我们使用 DOM 引用来改变 id="to" 的 HTML 元素的文本:

document.getElementById("to").innerHTML=
  • document - HTML 文档
  • getElementById("to") - 其中的 id="to" 的 HTML 元素
  • innerHTML - HTML 元素的内部文本


解析 XML 文件 - 跨浏览器实例

下列代码把一个 XML 文档 ("note.xml") 载入 XML 解析器中:

<html><body><h1> 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>

输出:

Internal NoteTo: GeorgeFrom: JohnMessage: Don't forget the meeting! 

重要注释

如需从 XML 中提取文本 "John",语法是:

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

在上例中,只有一个 <from> 标签,但是仍然需要规定数组的下标 [0],这是因为 getElementsByTagName() 方法会返回包含所有 <from> 节点的数组。

解析 XML 字符串 - 跨浏览器实例

下面的代码加载并解析一个 XML 字符串:

<html><body><h1>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>

输出:

Internal NoteTo: GeorgeFrom: JohnMessage: Don't forget the meeting!

0 0
原创粉丝点击