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> <head> <script type=text/javascript> function parseXML() { try //Internet Explorer { xmlDoc=new ActiveXObject(Microsoft.XMLDOM); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument(,,null); } catch(e) { alert(e.message); return; } } xmlDoc.async=false; xmlDoc.load(note.xml); 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> </head> <body onload=parseXML()> <h1>W3School.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> </body> </html>
输出:
To: GeorgeFrom: JohnMessage: Don't forget the meeting!
重要注释
如需从 XML 中提取文本 John,语法是:
getElementsByTagName(from)[0].childNodes[0].nodeValue
在这个 XML 例子中,只有一个 <from> 标签中,但是仍然需要规定数组的下标 [0],这是因为 XML 解析器方法 getElementsByTagName() 返回所有 <from> 节点的一个数组。
解析 XML 字符串 - 跨浏览器实例
下面的代码加载并解析一个 XML 字符串:
<html> <head> <script type=text/javascript> function parseXML() { text=<note>; text=text+<to>George</to>; text=text+<from>John</from>; text=text+<heading>Reminder</heading>; text=text+<body>Don't forget the meeting!</body>; text=text+</note>; try //Internet Explorer { xmlDoc=new ActiveXObject(Microsoft.XMLDOM); xmlDoc.async=false; xmlDoc.loadXML(text); } catch(e) { try // Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,text/xml); } catch(e) { alert(e.message); return; } } 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> </head> <body onload=parseXML()> <h1>W3School.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> </body> </html>
输出:
To: GeorgeFrom: JohnMessage: Don't forget the meeting!
注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。