[转]DOM 结构-----有需要的大家学习学习吧

1.概念:
DOM是一个平台和语言接口,它使用得程序和脚本可以动态地访问和更新一个文档的内容,结构和样式。
 W3C DOM提供了一套标准的对象去表达HTML和XML文档,和一套标准的接口去访问和处理它们
 Dom是内置在浏览器中的一种应用程序接口,不是javascript的一部分也可以被vbscript和java调用
2.历史:共出现过三种DOM,它们是:
1 Level 0 DOM 几乎被所有的浏览器支持。(当浏览器加载完整个页面的时候,它为你创建了数组,有   document.images[] 数组,包含了页面上的所有图片, document.forms[]数组,里面存放的是页面上的所有 form元素)
2 两个昔日之星的DOM:一个被IE支持,一个被Netscape支持。这两种DOM现在已经不在使用了
3 The Level 1 DOM, 或者也叫做W3C DOM。被现代的大部分浏览器支持
3.分类:w3cdom 中
 DOM分为不同的部份(Core,XML,HTML)和不同的级别标准(DOM Level 1/2/3):
1、Core DOM-为任何的结构的文档定义了一套标准的对象
2、XML DOM-为XML文档定义了一套标准的对象
3、HTML DOM-为HTML文档定义了一套标准的对象
级别:
    1.DOM0.与Netscape3.0和IE3.0所支持的大致相同,这种DOM称为传统的Javascript对象模型.
 2.DOM1.通过一套常用的函数集提供操纵一个文档中所有元数的能力。
3.DOM2.提供对主要与XML相关的页面元数的更多的访问,组合了DOM1,DOM0,同时增加了对样式表访问和操纵的支持。
W3CDOM的方法是将DOM的各部分分为五类:
1,DOM核心:指定一个通用模型标记稳当作为一个树状结构浏览和操着。
2,DOM HTML:为使用HTML指定一个核心DOM的扩展,
3, DOM CSS: 操作CSS样式规则的编程接口。
4,DOM事件:增加对D0M的事件处理。
5.DOM XML:为使用XML指定一个核心DOM的扩展.
访问元素
1.通过元素id属性访问元素,
2,通过元素的NAME属性访问元素.
3.公共的文档树导航起点.
4.dom0中传统的JAVASCRIPT
 
4.结构:
DOM整体上的结构是一个Composite模式。所有的XML单元,无论是文档、元素还是属性、文本,在DOM中都是一个Node(节点)。每个Node都可以包容其他的Node,构成了一个树型结构。(node类是所有xml的基类,element,attr,document都是node的派生类)
5. DOM处理XML数据,首先需要以下三个步骤:(HTML也是XML的一种)
1. 创建DocumentBuilderFactory。该对象将创建DocumentBuilder。
2. 创建 DocumentBuilder。 DocumentBuilder将对输入实际进行解析以创建Document对象。
3. 解析输入的XML,创建Document对象
6.节点和元素:在DOM中节点和元素不是等价的。“元素”是指一对标记(tag)及其内部包含的字符串值的总和;要处理一个元素的内容时,需要两个步骤:
1.  找到代表该元素的节点;
2. 处理该节点的第一个子节点;
 Element.getElementsByTagName(String name)方法来找到所有代表该元素的节点
Node.getFirstChild()可以得到代表该元素值的文本节点;
Node.setNodeValue(String)可以修改节点的值;
7.dom文档的遍历:
  1.要获取文档的根节点。用Document.getDocumentElement()方法
 2. Node.getChildNodes()得到该节点的所有直接子节点,返回NodeList对象,NodeList有两个方法:int getLength()和Node item(int),可以使用这两个方法来安全地访问其中的每个元素
3. Node.hasChildNodes()判断一个节点是否叶节点
4. getFirstChild()(获取第一个孩子节点),getNextSibling()(获取下一个兄弟节点)
8. 处理元素的内容:
插入节点用Node.appendChild(Node)或Node.insertBefore(Node newChild, Node refChild);
删除节点用Node.removeChild(Node oldChild);
替换节点用Node.replaceChild(Node newChild, Node oldChild)。
9. 文档的序列化
每个Element都覆盖了toString方法,所以只要指定某一个Element作为根,再调用它的toString方法,它就会递归得到其下的整个树型结构,并转换成String型对象。只要把这个String型对象输出到指定的设备上,就可以得到XML文档

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值