新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论DOM, SAX, XPath等。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DOM/SAX/XPath 』 → DOM的四个基本接口 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 88610 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: DOM的四个基本接口 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 DOM/SAX/XPath 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 DOM的四个基本接口

    在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。Node接口是其他大多数接口的父类,象Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。NodeList接口是一个节点的集合,它包含了某个节点中的所有子节点。NamedNodeMap接口也是一个节点的集合,通过该接口,可以建立节点名和节点之间的一一映射关系,从而利用节点名可以直接访问特定的节点。下面将对这四个接口分别做一些简单的介绍。

    Document接口
    Document接口代表了整个XML/HTML文档,因此,它是整棵文档树的根,提供了对文档中的数据进行访问和操作的入口。

    由于元素、文本节点、注释、处理指令等都不能脱离文档的上下文关系而独立存在,所以在Document接口提供了创建其他节点对象的方法,通过该方法创建的节点对象都有一个ownerDocument属性,用来表明当前节点是由谁所创建的以及节点同Document之间的联系。

    在DOM树中,Document接口同其他接口之间的关系如下图所示:

    由图可以看出,Document节点是DOM树中的根节点,也即对XML文档进行操作的入口节点。通过Docuemt节点,可以访问到文档中的其他节点,如处理指令、注释、文档类型以及XML文档的根元素节点等等。另外,从上图我们还可以看出,在一棵DOM树中,Document节点可以包含多个处理指令、多个注释作为其子节点,而文档类型节点和XML文档根元素节点都是唯一的。

    关于Document接口的IDL(Interface Definition Language接口定义语言)定义和其中一些比较常用的属性和方法的详细介绍在许多参考书都可以找到,我们将在后面结合实际例子给予介绍。

    Node接口
    Node接口在整个DOM树中具有举足轻重的地位,DOM接口中有很大一部分接口是从Node接口继承过来的,例如,Element、Attr、CDATASection等接口,都是从Node继承过来的。在DOM树中,Node接口代表了树中的一个节点。一个典型的Node接口如下图所示:

    如图所示,Node接口提供了访问DOM树中元素内容与信息的途径,并给出了对DOM树中的元素进行遍历的支持。

    同样,我们将在后面结合实际例子详细说明Node接口的具体使用方法。

    NodeList接口
    NodeList接口提供了对节点集合的抽象定义,它并不包含如何实现这个节点集的定义。NodeList用于表示有顺序关系的一组节点,比如某个节点的子节点序列。另外,它还出现在一些方法的返回值中,例如GetNodeByName。

    在DOM中,NodeList的对象是"live"的,换句话说,对文档的改变,会直接反映到相关的NodeList对象中。例如,如果通过DOM获得一个NodeList对象,该对象中包含了某个Element节点的所有子节点的集合,那么,当再通过DOM对Element节点进行操作(添加、删除、改动节点中的子节点)时,这些改变将会自动地反映到NodeList对象中,而不需DOM应用程序再做其他额外的操作。

    NodeList中的每个item都可以通过一个索引来访问,该索引值从0开始。

    NamedNodeMap接口
    实现了NamedNodeMap接口的对象中包含了可以通过名字来访问的一组节点的集合。不过注意,NamedNodeMap并不是从NodeList继承过来的,它所包含的节点集中的节点是无序的。尽管这些节点也可以通过索引来进行访问,但这只是提供了枚举NamedNodeMap中所包含节点的一种简单方法,并不表明在DOM规范中为NamedNodeMap中的节点规定了一种排列顺序。

    NamedNodeMap表示的是一组节点和其唯一名字的一一对应关系,这个接口主要用在属性节点的表示上。
    与NodeList相同,在DOM中,NamedNodeMap对象也是"live"的。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/8/9 10:20:00
     
     priyan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:5
      积分:102
      门派:XML.ORG.CN
      注册:2004/8/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给priyan发送一个短消息 把priyan加入好友 查看priyan的个人资料 搜索priyan在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看priyan的博客2
    发贴心情 
    收益颇多,谢谢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/16 16:37:00
     
     priyan 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:5
      积分:102
      门派:XML.ORG.CN
      注册:2004/8/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给priyan发送一个短消息 把priyan加入好友 查看priyan的个人资料 搜索priyan在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看priyan的博客3
    发贴心情 
    收益颇多,谢谢
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/16 16:37:00
     
     lizhijie97 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:7
      积分:79
      门派:XML.ORG.CN
      注册:2004/10/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lizhijie97发送一个短消息 把lizhijie97加入好友 查看lizhijie97的个人资料 搜索lizhijie97在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lizhijie97的博客4
    发贴心情 
    写的非常好  我正在做一个 DELPHI 下 用DOM组件 对XML进行遍历

    请问斑竹 如何做  或者如何做最方便 或者如何做算法效率最高

    当然是以先实现为基础了 谢谢

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/18 10:00:00
     
     kingbillow 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:45
      积分:252
      门派:XML.ORG.CN
      注册:2004/9/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给kingbillow发送一个短消息 把kingbillow加入好友 查看kingbillow的个人资料 搜索kingbillow在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看kingbillow的博客5
    发贴心情 
    没有具体的例子吗
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/18 11:22:00
     
     ikeeper 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:6
      积分:100
      门派:XML.ORG.CN
      注册:2004/10/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ikeeper发送一个短消息 把ikeeper加入好友 查看ikeeper的个人资料 搜索ikeeper在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看ikeeper的博客6
    发贴心情 
    不错,只是看不到那些图。。。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/10/24 4:57:00
     
     xxw740723 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:59
      门派:XML.ORG.CN
      注册:2005/7/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xxw740723发送一个短消息 把xxw740723加入好友 查看xxw740723的个人资料 搜索xxw740723在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xxw740723的博客7
    发贴心情 
    收益颇丰,谢了!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/5 20:03:00
     
     biao8848 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:59
      门派:XML.ORG.CN
      注册:2005/7/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给biao8848发送一个短消息 把biao8848加入好友 查看biao8848的个人资料 搜索biao8848在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看biao8848的博客8
    发贴心情 
    学习中~
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/6 9:02:00
     
     chenxinmx 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:25
      积分:146
      门派:XML.ORG.CN
      注册:2005/7/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chenxinmx发送一个短消息 把chenxinmx加入好友 查看chenxinmx的个人资料 搜索chenxinmx在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看chenxinmx的博客9
    发贴心情 
    收益颇多,谢谢,
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/26 16:22:00
     
     binaryluo 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:研二(Pi-Calculus看得一头雾水)(版主)
      文章:679
      积分:5543
      门派:IEEE.ORG.CN
      注册:2005/2/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给binaryluo发送一个短消息 把binaryluo加入好友 查看binaryluo的个人资料 搜索binaryluo在『 DOM/SAX/XPath 』的所有贴子 引用回复这个贴子 回复这个贴子 查看binaryluo的博客10
    发贴心情 
    up
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/26 20:07:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DOM/SAX/XPath 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/18 2:53:40

    本主题贴数23,分页: [1] [2] [3]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    110.352ms