XMLDOM教程Word文档下载推荐.docx
《XMLDOM教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《XMLDOM教程Word文档下载推荐.docx(98页珍藏版)》请在冰豆网上搜索。
在W3School,我们提供完整的DOM参考手册,其中包括所有的对象以及它们的属性和方法。
XMLXMLXMLXMLDOMDOMDOMDOM实例
学习50个实例!
使用我们的编辑器,你可以编辑源代码,然后单击测试按钮来查看结果。
亲自试一试吧!
XMLXMLXMLXMLDOMDOMDOMDOM简介简介简介简介
•PreviousPage
XMLXMLXMLXMLDOMDOMDOMDOM定义了访问和处理XMLXMLXMLXML文档的标准方法。
XMLXMLXMLXMLDOMDOMDOMDOM是XMLXMLXMLXMLDocumentDocumentDocumentDocumentObjectObjectObjectObjectModelModelModelModel的缩写,即XMLXMLXMLXML文档对象模型。
您应当具备的基础支持
在继续学习之前,您应当对下列知识有基本的了解:
•HTML/XHTML
•JavaScript
•XML
如果您希望首先学习这些项目,请在我们的首页访问这些教程。
什么是DOMDOMDOMDOM?
DOM是W3C(万维网联盟)的推荐标准。
DOM定义了访问诸如XML和XHTML文档的标准。
“W3C文档对象模型(DOM)是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式
的平台和语言中立的接口。
”
W3CDOM被分为3个不同的部分/级别(parts/levels):
核心DOMDOMDOMDOM
用于任何结构化文档的标准模型
XMLXMLXMLXMLDOMDOMDOMDOM
用于XML文档的标准模型
HTMLHTMLHTMLHTMLDOMDOMDOMDOM
用于HTML文档的标准模型
DOM定义了所有文档元素的对象和属性,以及访问它们的方法(接口)。
您可以在我们的W3C教程中获得更多有关W3CDOM规范/级别的信息。
什么是HTMLHTMLHTMLHTMLDOMDOMDOMDOM?
HTMLDOM定义了所有HTML元素的对象和属性,以及访问它们的方法(接口)。
如果您希望学习HTMLDOM,请访问我们的HTMLDOM教程。
什么是XMLXMLXMLXMLDOM?
DOM?
XMLDOM是:
•用于XML的标准对象模型
•用于XML的标准编程接口
•中立于平台和语言
•W3C的标准
XMLDOM定义了所有XML元素的对象和属性,以及访问它们的方法(接口)。
换句话说:
XMLXMLXMLXMLDOMDOMDOMDOM是用于获取、更改、添加或删除XMLXMLXMLXML元素的标准。
XMLXMLXMLXMLDOMDOMDOMDOM节点节点节点节点
•NextPageXMLXMLXMLXML文档中的每个成分都是一个节点。
节点
根据DOM,XML文档中的每个成分都是一个节点。
DOM是这样规定的:
•整个文档是一个文档节点
•每个XML标签是一个元素节点
•包含在XML元素中的文本是文本节点
•每一个XML属性是一个属性节点
•注释属于注释节点
DOMDOMDOMDOM实例
请看下面的XML文件(books.xml):
<
?
xmlversion="
1.0"
encoding="
ISO-8859-1"
>
bookstore>
bookcategory="
children"
titlelang="
en"
HarryPotter<
/title>
author>
JK.Rowling<
/author>
year>
2005<
/year>
price>
29.99<
/price>
/book>
cooking"
EverydayItalian<
GiadaDeLaurentiis<
30.00<
web"
LearningXML<
ErikT.Ray<
2003<
39.95<
XQueryKickStart<
JamesMcGovern<
PerBothner<
KurtCagle<
JamesLinn<
VaidyanathanNagarajan<
49.99<
/bookstore>
在上面的XML中,根节点是<
。
文档中的所有其他节点都被包含在<
中。
根节点<
有四个<
book>
节点。
第一个<
节点有四个节点:
<
title>
<
以及<
,其中每个节点都包
含一个文本节点,"
HarryPotter"
"
JK.Rowling"
2005"
以及"
29.99"
文本总是存储在文本节点中
在DOM处理中一个普遍的错误是,认为元素节点包含文本。
不过,元素节点的文本是存储在文本节点中的。
在这个例子中:
,元素节点<
,拥有一个值为"
的文本节点。
"
不是<
元素的值!
XMLXMLXMLXMLDOMDOMDOMDOM节点树节点树节点树节点树
XMLXMLXMLXMLDOMDOMDOMDOM把XMLXMLXMLXMLDOMDOMDOMDOM文档视为一棵节点树(node-tree)(node-tree)(node-tree)(node-tree)。
树中的所有节点彼此之间都有关系。
XMLXMLXMLXMLDOMDOMDOMDOM节点树XMLDOM把XML文档视为一种树结构。
这种树结构被称为节点树。
可通过这棵树访问所有节点。
可以修改或删除它们的内容,也可以创建新的元素。
这颗节点树展示了节点的集合,以及它们之间的联系。
这棵树从根节点开始,然后在树的最低层级向文本
节点长出枝条:
上面的图片表
示XML文件books.xml。
父、子和同级节点
节点树中的节点彼此之间都有等级关系。
父、子和同级节点用于描述这种关系。
父节点拥有子节点,位于相同层级上的子节点称为同级节点(兄弟
或姐妹)。
•在节点树中,顶端的节点成为根节点
•根节点之外的每个节点都有一个父节点
•节点可以有任何数量的子节点
•叶子是没有子节点的节点
•同级节点是拥有相同父节点的节点
下面的图片展示出节点树的一个部分,以及节点间的关系:
因为XML数据是按照树的形式进行构造
的,所以可以在不了解树的确切结构且不了解其中包含的数据类型的情况下,对其进行遍历。
您将在本教程稍后的章节学习更多有关遍历节点树的知识。
注释:
父节点:
ParentNode,子节点:
ChildrenNode,同级节点:
SiblingNode。
第一个子节点----最后一个子节点
请看下面的XML片段:
CHILDREN"
在上面的XML中,<
元素是<
元素的第一个子节点,而<
元
素的最后一个子节点。
此外,<
、<
元素的父节点。
解析解析解析解析XMLXMLXMLXMLDOMDOMDOMDOM
大多数浏览器都内建了供读取和操作XMLXMLXMLXML的XMLXMLXMLXML解析器。
解析器把XMLXMLXMLXML转换为JavaScriptJavaScriptJavaScriptJavaScript可存取的对象。
实例
W3School提供的实例独立于浏览器和平台。
这些实例可在所有现代浏览器中运行。
加载并解析XML文件
1)1)1)1)<
html>
2)2)2)2)<
body>
3)3)3)3)<
script<
scripttype="
text/javascript"
type="
4)4)4)4)trytrytrytry//Internet//Internet//Internet//InternetExplorerExplorerExplorerExplorer
5)5)5)5){{{{
6)6)6)6)xmlDoc=newxmlDoc=newxmlDoc=newxmlDoc=newActiveXObject("
Microsoft.XMLDOM"
);
ActiveXObject("
7)7)7)7)}}}}
8)8)8)8)catch(e)catch(e)catch(e)catch(e)
9)9)9)9){{{{
10)10)10)10)trytrytrytry//Firefox,//Firefox,//Firefox,//Firefox,Mozilla,Mozilla,Mozilla,Mozilla,Opera,Opera,Opera,Opera,etc.etc.etc.etc.
11)11)11)11){{{{
12)12)12)12)
xmlDoc=document.implementation.createDocument("
"
null);
xmlDoc=document.implementation.createDocument("
13)13)13)13)}}}}
14)14)14)14)catch(e)catch(e)catch(e)catch(e){alert(e.message)}{alert(e.message)}{alert(e.message)}{alert(e.message)}
15)15)15)15)}}}}
16)16)16)16)trytrytrytry
17)17)17)17){{{{18)18)18)18)xmlDoc.async=false;
xmlDoc.async=false;
19)19)19)19)xmlDoc.load("
/example/xdom/books.xml"
xmlDoc.load("
20)20)20)20)document.write("
xmlDocdocument.write("
xmlDocisisisisloaded,loaded,loaded,loaded,readyreadyreadyreadyforforforforuse"
use"
21)21)21)21)}}}}
22)22)22)22)catch(e)catch(e)catch(e)catch(e){alert(e.message)}{alert(e.message)}{alert(e.message)}{alert(e.message)}
23)23)23)23)<
/script>
24)24)24)24)<
/body>
25)<
/html>
加载并解析XML字符串
4)4)4)4)text="
text="
5)5)5)5)text=text+"
;
text=text+"
6)6)6)6)text=text+"
Harrytext=text+"
Potter<
7)7)7)7)text=text+"
Jtext=text+"
JK.K.K.K.Rowling<
Rowling<
8)8)8)8)text=text+"
9)9)9)9)text=text+"
10)10)10)10)text=text+"
11)11)11)11)trytrytrytry//Internet//Internet//Internet//InternetExplorerExplorerExplorerExplorer
12)12)12)12){{{{
13)13)13)13)xmlDoc=newxmlDoc=newxmlDoc=newxmlDoc=newActiveXObject("
14)14)14)14)xmlDoc.async="
false"
xmlDoc.async="
15)15)15)15)xmlDoc.loadXML(text);
xmlDoc.loadXML(text);
16)16)16)16)}}}}
17)17)17)17)catch(e)catch(e)catch(e)catch(e)
18)18)18)18){{{{
19)19)19)19)trytrytrytry//Firefox,//Firefox,//Firefox,//Firefox,Mozilla,Mozilla,Mozilla,Mozilla,Opera,Opera,Opera,Opera,etc.etc.etc.etc.
20)20)20)20){{{{
21)21)21)21)parser=newparser=newparser=newparser=newDOMParser();
DOMParser();
22)22)22)22)xmlDoc=parser.parseFromString(text,"
text/xml"
xmlDoc=parser.parseFromString(text,"
23)23)23)23)}}}}
24)24)24)24)catch(e)catch(e)catch(e)catch(e){alert(e.message)}{alert(e.message)}{alert(e.message)}{alert(e.message)}
25)25)25)25)}}}}
26)26)26)26)trytrytrytry
27)27)27)27){{{{
28)28)28)28)document.write("
xmlDoc已加载,可以使用。
"
29)29)29)29)}}}}
30)30)30)30)catch(e)catch(e)catch(e)catch(e){alert(e.message)}{alert(e.message)}{alert(e.message)}{alert(e.message)}
31)31)31)31)<
32)32)32)32)<
33)<
解析XMLXMLXMLXML
所有现代浏览器都内建了用于读取和操作XML的XML解析器。
解析器把XML读入内存,并把它转换为可被JavaScript访问的XMLDOM对象。
微软的XML解析器与其他浏览器中的解析器是有差异的。
微软的解析器支持对XML文件和XML字符
串(文本)的加载,而其他浏览器使用单独的解析器。