打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XML DOM介绍
一、XML DOM简介
DOM(Document Object Model,文档对象模型)是一种应用程序接口(API)的应用,它将文档(如XML文档,HTML文档等)看成是一个文档对象,然后通过程序语言(如JavaScript等脚本语言,C++等)调用该文档对象,对文档中的数据进行存取,并利用程序对获取的数据进行跟进一步的处理。
XML  DOM是将XML文档以DOM方式包装,通过DOM技术,应用程序即可很容易地提取XML文档中的数据。
二、XML DOM对象
IE实现了对XML DOM技术的支持,提供了五个可以在脚本程序中调用的XML DOM对象:
(1)       XMLDOMDocument
该对象代表整个XML文档,它具有多种属性和方法来获取或创建其他XML DOM对象。
(2)       XMLDOMNode
该对象可以代表XML文档的根元素以及根元素下的各个节点。它支持数据类型、名域、DTD和Schema,并且以此扩展核心的XML DOM节点接口。
(3)       XMLDOMNodeList
该对象代表XML文档中一系列节点组成的一个节点列表,并且支持对该列表的遍历。
(4)       XMLDOMNamedNodeMap
该对象支持名域和对属性集的遍历。
(5)       XMLDOMParseError
该对象用于返回最近一次解析错误的详细信息,包括错误号、错误所在行、错误所在字符位置以及对错误的一个描述文本。
三、XML DOM属性
XML DOM文档的遍历与HTML DOM的遍历非常类似,因为它们都是节点层次的结构。节点树的最顶部是documentElement属性,包含文档的根元素。使用下表中所列出的属性,可以访问文档中任何元素或属性。
表4-1 XML DOM属性
属    性
描    述
attributes
包含当前节点属性的数组
childNodes
包含子节点数组
firstChild
指向当前节点的第一个子节点
lastChild
指向当前节点的最后一个子节点
nextSibling
返回当前节点的下一个邻居节点
nodeName
返回当前节点的名字
nodeType
指定当前节点的XML DOM节点类型
nodeValue
包含当前节点的文本
ownerDocument
返回文档的根元素
parentNode
指向当前节点的父节点
previousSibling
返回当前节点的前一个邻居节点
text
返回当前节点的内容或当前节点及其子节点的文本(只有IE才支持的属性)
xml
以字符串返回当前节点及其子节点的XML(只有IE才支持的属性)
四、XML DOM实例
以下实例,讲解如何读取xml文件(支持IE和FireFox),并访问节点中的信息:
XML文件:Example1.xml
<?xml version="1.0" encoding="gb2312"?>
<!--作为操作对象的XML文档-->
<根元素>
<第2层>
<第3层>我是第三层元素集合中的第1个元素</第3层>
<第3层>我是第三层元素集合中的第2个元素</第3层>
</第2层>
</根元素>
HTML文件:readXML.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>读取XML文件,并访问节点信息</title>
<script language="JavaScript" for="window" event="onload">
<!--
function createDocument() {
var aVersions = [ "MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XmlDom"];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlDom = new ActiveXObject(aVersions[i]);
return oXmlDom;//支持最新的版本
} catch (oError) {
// 不做任何处理
}
}
throw new Error("MSXML is not installed.");
}
var XMLdoc;
var XMLroot;
if(typeof(window.ActiveXObject) != ‘undefined‘){// 支持IE浏览器
XMLdoc = createDocument();
XMLdoc.async="false";
XMLdoc.load("Example1.xml");
XMLroot=XMLdoc.documentElement;
L2=XMLroot.childNodes.item(0);
L3_Node0=L2.firstChild;
strA=L3_Node0.nodeName;
strB=L3_Node0.text;
Text0.innerText=strA+" "+strB;
L3_Node1=L2.lastChild;
strA=L3_Node1.nodeName;
strB=L3_Node1.text;
Text1.innerText=strA+" "+strB;
}else if(document.implementation && document.implementation.createDocument){// 支持Mozilla Firefox浏览器
XMLdoc = document.implementation.createDocument("", "doc", null);
XMLdoc.async="false";
XMLdoc.load("Example1.xml");
XMLdoc.onload=function(){
x=XMLdoc.getElementsByTagName(‘第3层‘);
L3_Node0=x.item(0);
strA=L3_Node0.nodeName;
strB=L3_Node0.childNodes[0].nodeValue;
document.getElementById("Text0").textContent=strA+" "+strB;
L3_Node1=x.item(1);
strA=L3_Node1.nodeName;
strB=L3_Node1.childNodes[0].nodeValue;
document.getElementById("Text1").textContent=strA+" "+strB;
}
}
//-->
</script>
</head>
<body>
<h3 align="center">读取XML文件,并访问节点信息<hr/></h3>
<h4>第三层的的第一个节点:</h4>
<div id="Text0" style="font-family:华文楷体;color:red;"></div>
<h4>第三层的的第二个节点:</h4>
<div id="Text1" style="font-family:黑体;color:blue;"></div>
</body>
</html>
参考资料:《XML网页开发实例教程》 机械工业出版社  尹泉等编著
网上资料
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Javascript 操作XML
XML DOM Clone Nodes
传智播客:ajax:Dom处理xml - habernate的日志 - 网易博客
PHP XML Expat 解析器
XML 数据交换在Office 二次开发中的应用
简单了解JavaScript操作XPath的一些基本方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服