(计算机应用技术专业论文)基于web的html网页清洗技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于web的html网页清洗技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于web的html网页清洗技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于web的html网页清洗技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于web的html网页清洗技术的研究与实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北电力大学硕士学位论文 摘要 随着i n t e m e t 的发展,越来越多的人开始关注w e b 页面上的信息,因此基于 w e b 的信息提取技术,成为目前数据挖掘领域的研究热点之一。但是w e b 页面中包 含了很多与主题无关的信息,例如弹出的广告、多余的图片以及一些无关的链接等。 这些信息严重影响了对w e b 中有用信息的提取,因此网页清洗变得十分重要。本文 在深入分析、研究了w e b 页面的数据结构和当前网页清洗技术的基础上,提出了基 于d o m ( d o c u m e n to b j e c tm o d c 卜文档对象模型) 树结构的网页清洗技术,并在 e c l i p s e 平台上开发了一个网页清洗工具。该工具能够有效地清洗网页中大多数与主 题无关的信息,具有很好的实用价值和应用前景。 关键词:d o m 树,页面清洗,格式化,h t m l 文档 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e t m o r ea n dm o r ep e o p l ep a ya t t e n t i o nt ot h e i n f o r m a t i o no nw e b p a g e s ,s oi n f o r m a t i o ne x t r a c t i o nf r o mt h ew e bp a g e sh a sb e c o m e o n e o ft h er e s e a r c hh o t s p o t si nt h ef i e l do fd a t am i a i n g b u tw e bp a g e so f t e nc o n t a i nm a n y c l u t t e r s ( s u c ha sp o p u pa d s ,u n n e c e s s a r yi m a g e sa n de x t f a n e o u sl i n k s ) t h a ta r eu n r e l a t e d t ot h es u b j e c ta n da f f e c tt h ee x t r a c t i o no fu s e f u li n f o r m a t i o n s ow e bp a g ec l e a n u p b e c o m e sv e r yi m p o r t a n t o nt h eb a s i so fd e e pa n a l y s e sa n dr e s e a r c ho nt h ed a t as t r u c t u r e o ft h ew e bp a g ea n dp a g ec l e a n u pt e c h n i q u e s ,t h i sp a p e rp u t sf o r w a r dan e ww e bp a g e c l e a n u pt e c h n i q u e sb a s e do i lt h ed o mt r e e ,a n dd e v e l o p saw e bp a g ec l e a n u pt o o lo n e c l i p s e t h i st o o lc a ne f f e c t i v e l yc l e a n u pm o s to ft h ei n f o r m a t i o nu n r e l a t e dt o t h e s u b j e c to fp a g e ,s oi th a s ag o o dp r a c t i c a l i t yv a l u ea n du s e f u lp r o s p e c t l i ub i n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yv i c e - p r o f z h e n gl i n g k e yw o r d s :d o mt r e e ,p a g ec l e a n u p ,r e f o r m a t t i n g ,h t m ld o c u m e n t 声明 本人郑重声明:此处所提交的硕士学位论文基于w e b 的h t m l 网页清洗技术的 研究与实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工 作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论 文中作了明确的说明并表示了谢意。 学位论文作者签名:壶耸斌日 期。麴z : 。 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名: 日期: 导师签名: 日期: 箍 华北电力大学硕士学位论文 1 1 选题背景及意义 第一章绪论 随着i n t e r n e t 及其技术的迅猛发展,w e b 已经成为当今最广大的信息资源库。 然而,由于w e b 里的信息纷繁复杂,人们想要找到所需的信息真可谓是大海捞针。 因为在w e b 页面中的文章主体周围夹杂着一些干扰信息使得用户分散了对感兴趣 的实际内容的注意力。这些信息包括弹出的广告、横幅广告、版权信息、多余的图 片以及一些无关的链接等。自动清洗掉这些无关信息而保留w e b 页面中有用的相关 内容的应用很广泛,包括了基于w e b 的信息提取和信息搜索、使用户更加容易的用 一些手持设备比如p d a ( p e r s o n a ldj i g i t a la s s i s t a n t _ 个人数字助理) 和手机来浏览 w e b 页面,以及使弱视人群更好的获取w e b 信息等。 研究表明,通过提取主题信息可以减少一半浏览时间,提高用户获取信息的速 度,从而增强w e b 的可用性【。w e b 信息提取已经成为当前信息领域的研究热点之 一自动清洗掉w e b 页面中的无关信息已经成为w e b 信息提取效率提高的重要的 预处理手段。 大多数传统的去除干扰信息使内容更加可读的方法包括增加字体大小、去除多 余的图片、屏蔽脚本特效等等。这些方法改变了w e b 页面的原有显示效果。比如 w p a r 2 1 ,w b b w i p e l 和j u n k b u s t e r l 4 1 所有的这些产品只用于某些普通的w e b 页面 设计,以及去除一些固定的广告黑名单。如果处理特殊的w e b 页面设计,这些软件 可能就会达不到预期的效果。除此之外,其他的还有内容格式化方法,它可以重新 组织页面以适于在p d a 上显示,例如o p e r a 5 1 ,就是使用所具有的小屏幕渲染技术 来重新格式化w e b 页面以适应屏幕的宽度。然而,这种方法并没有去除干扰信息而 是仅仅重新组织了页面。本文提出了一种网页清洗技术,这种技术可以在不破坏 w e b 页面现实的前提下,去除干扰信息,使得页面更加可视化。 网页清洗技术对于那些弱视人群和盲人尤其有用。对于弱视群体来说,普遍提 高w e b 页面可读性的方法是增加字体的大小和降低屏幕显示的分辨率;然而,这同 时也增加了干扰因素的尺寸,降低了显示效果。 自然语言处理和信息提取算法同样受益于页面清洗算法,因为网页清洗可以作 为它们的预处理操作,把去除掉冗余信息的页面作为它们的输入源,这样就使得它 们的执行更加准确有效了。 。目前已经有很多页面清洗算法,但很少得到了广泛的应用。在本文的页面清洗 方法中,采用了一个开源的h t m l ( h y p e r t e x t m a r k u p l a n g u a g c 一超文本标记语言) 解析器c y b e r n e k oh t m lp a r s e r l 6 l 用于解析w e b 页面,这个解析器不仅可以修复 华北电力大学硕士学位论文 h t m l 的结构,而且可以把h t m l 源文件解析成一个d o m 树结构【“。把w e b 页面 的h t m l 源文件解析成d o m 树,不仅可以像b u y u k k o k t e n 的“s t u ( s e m e n t i ct e x t u a l u n i t 一语义文本单元) ”模型【8 】那样从大的逻辑单元结构中提取信息,而且可以对 d o m 树中小的元素诸如具体的超链接进行处理。除此之外,d o m 树非常容易编辑, 而且很容易改造一个w e b 页面。因此,使用d o m 树结构的方法使得网页清洗更加 方便,比以往的算法具有更广阔的应用前景。 1 2 国内外研究现状 在内容识别和信息提取领域,国内外已经进行了大量的工作,并使用各种不同 的方法来解决相关的问题。f i n n 等人1 9 j 论述了使用单文章源( 假设页面内容是一个 单主体块) 来进行页面清洗的算法。这个算法把一个页面分解成由文本和标签的组 成,页面被分成3 个连续的区域,使用边晃来分隔文档页面以使大多数标签被置于 外部区域,而使文本置于中央区域这种方法对于单主体文档适用,但却破坏了 h t m l 的结构而且不适用于多主体文档也就是说,对于像博客 ( h t t p :w w w b l o g c n c o r n ) 那样内容被分割成多块的页面文档并不适用。要成功清 洗多主体文档内容的话,算法的运行时间就会变成主体块数的多项式倍数,例如, 清洗一个包含8 个不同主体的文档页面需要运行时问是o ( n 5 ) 【加l ,n 是文档中的标 记数。 哥伦比亚大学自然语言组的m c k e o w n 等人【1 1 】的算法依靠统计w e b 页面中的文 本数来发现最大主体块并归类为文档内容。这种方法适用于简单的页面,而对于处 理多主体文档,尤其包含随机分布的广告图片的文档,会产生噪音或不准确的结果。 r a h m a n 等人【1 2 l 提出另外一种技巧就是使用结构分析、语义分析和归纳的方法: 首先分析一个h t m l 文档,然后再将其适当地分解为一些小的子块。最后分别提取 和归纳这些单个部分的内容。然而,这个提议日前还没有实现。此外,他们的提议 只是为页面清洗提出了前提条件,并没有提出具体的实现方法。 另外,还有许多方法用于格式化w e b 页面来适应在一些小屏幕的设备像手机和 p d a 显示,这些方法包括o p e r a 浏览器【1 3 】和b i t s t r e a mt h u n d e r h a w k 1 4 l ;然而,他 们主要是靠重组w e b 页面的内容来适应一些手持设备的显示,而且需要用户滚动屏 幕去寻找内容。 b u y u k k o k t e n 等人【1 5 l 定义了一种叫“可折叠摘要”的策略,可以像工具一样收 缩或延展一个页面。他们还论述了一种方法可以把w e b 页面改造成一种具有层次结 构的独立内容单元,称作语义文本单元简称s t u 。s t u 是靠分析一个h t m l 文档 的造词特点构成的,例如;文本包含在段落标签 、表格单元 和框架组件 标签里。根据每一个s t u 的h t m l 标签格式,再组织成一个层次结构, 2 华北电力大学硕士学位论文 包含h t m l 头标签( , 和 ) 或者粗文本标签( b ) 的被赋予比普 通文本更高的层次水平。这个层次结构最后可以在p d a 和手机上显示出来。尽管 b u y u k k o k t e n 的层次结构和基于d o m 树的模型相似,但d o m 树是非常容易编辑的 而且可以被改造成一个完整的w e b 页面。d o m 树也是w 3 c 组织制定的一个被广泛 采用的标准,本文所采用的方法正是基于此技术。s t u 的方法是识别s t u 信息,然 后对s t u 进行总结来产生可以在p d a 和手机上显示的内容。然而,这种方法的最 主要问题是需要编辑原始的内容,这就使得显示的内容和原先的内容有所不同。本 文的方法是保留原先所有的文本内容。 k a a s i n e n 等人【1 6 】论述了一种把一个w e b 页面分成一些独立的单元就像甲板上 的一块块木片一样。就像s t u ,一个页面可以被分成一系列含有层次的“卡片”存 放在。甲板”上这个由。卡片”组成的“甲板”每次呈现给用户一张“卡片”浏 览文章还提出了一种简单的方法,即把h t m l 内容转换为w m l ( w i r e l e s sm a r k u p l a n g u a g e - - - 无线标记语言) 内容,然后去掉w e b 页面中的简单信息诸如图片,从而 可以减少小显示器的换屏显示尽管这种缩减方法比较实用,但和s t u 方法一样具 有同样的问题。这种卡模型的问题就是它把页面分成可以被小型窗口显示的小区 域,从而使得要靠用户来决定页面中的内容位于哪块区域,这给用户带来了麻烦。 北京大学的张志刚等人1 1 7 l 提出了一种网页净化的方法与算法,该方法以一组启 发式规则为基础,利用信息检索的技术以及w e b 网页的特征,提取网页的主题以及 和主题相关的内容,从而达到网页净化的目的。但它必须对网页采用一种人为的启 发式规则来进行分类,仅对一些明显的主题型页面产生一定的清洗效果,而不能自 动的清洗其他类型的页面,而且对于广告图片的净化也没有很好的效果。 尽管在网页清洗方面已经有很多人员在研究,也提出了一些可以辨认内容及清 洗页面的简单方法,但没有一种方法可以很好的解决自动清洗页面的任务。本文在 研究w e b 页面的相关技术的基础上,研究了基于d o m 树的网页清洗方法,通过把 半结构化的h t m l 页面解析成一个结构化d o m 树结构,从而在清洗页面内容的时 候,可以很好地进行控制,并且对绝大多数页面都产生了很好的清洗效果。 1 。3 本文的工作与创新 本文所作的主要工作有以下几点: 1 、在查阅了国内外大量文献资料的基础上,对当前w e b 页面的结构进行了深 入的分析;同时对未来w e b 页面的发展方向也做了深入的探讨,为以后的网页清洗 技术的研究奠定了基础。 2 、深入研究了d o m 技术,并对d o m 树结构的生成算法做了深入的学习;同 时对当前的基于d o m 树结构的各种h t m l 页面解析器作了分析和比较。 3 华北电力大学硕士学位论文 3 、在深入分析和研究了当前网页清洗技术的基础上,本文提出了一种基于d o m 树结构的网页清洗技术,该技术可以有效清洗网页中大多数的无关信息,并对大多 数网页结构都能进行有效的清洗。 4 、在大量学习了当前流行的软件开发技术的基础上,选择了j a v a 程序设计开 发语言,并在e c l i p s e 开发平台上,用s w t ( s t a n d a r dw i d g e tt o o l k i 卜标准窗口小 部件工具箱) 进行界面设计技术,开发出了一个可视化的、小巧的、便利的、可跨 平台使用的网页清洗工具,该网页清洗工具具有很好的实用价值和应用前景。 本文的网页清洗技术的特点为: 1 、采用了许多可扩展的技术并融合了一些网页清洗领域以前工作的优势。首 先用h t m l p a r s e r 对网页进行解析,生成可以表现网页的d o m 树结构。这个d o m 树结构具有等级结构,可以进行局部的分析也可整体的分析。之后采用迭代算法遍 历这个d o m 树结构,经过一系列过滤技巧去除或修改特定的节点以保留主体内容。 每一个过滤设置都可以进行控制以有效的满足用户的需求。 2 、页面清洗过程主要分为两个层次:第一个层次仅仅根据标签直接清洗图片、 链接、脚本、样式以及其他可以快速的从页面中过滤的元素。而第二个层次是一种 更高层次的过滤。将过滤掉广告、链接列表和空表,同时对相关链接进行识别和保 留。 3 、广告的过滤方法使用了一种非常高效的技巧。随着d o m 树的解析,标签中 含有“s r c ”和“h r e f ”属性的将会被遍历到,并检查链接所涉及的服务器。如果服 务器的地址和那些常见的发布广告的服务器列表中有匹配的,则包含这个链接的节 点将被去除。这种技术在h a n z l i k ! 墙j 的方法中进行了检验,并列出了一个服务器列 表用于广告过滤器。 4 、链接列表的过滤方法是:当d o m 树解析到表格元素时,首先计算那些在表 格中具有链接的单词数和没有链接的单词数的比值,当该比值大于初始给定的一个 链接和文本的比值时,则去除这个表格元素内容。这个算法能成功的去除绝大多数 位于w e b 页面周围的链接列表。 5 、空表过滤算法是去除那些没有任何实质性信息的表格元素。通过设置,由 用户决定表格中哪些h t m l 标签是有信息的、有多少字符是实质性的。当表格被解 析时,程序自动检查它是否有实质性内容,如果没有,则从d o m 树中去除。这个 算法有效的去除了前面过滤算法所产生的包含少量次要信息的表格。 6 、上面的过滤算法是从页面中去除非内容信息,而从去除掉的链接中识别和 保留与主题相关的链接算法却是保留相关链接信息。该算法记录了所有被链接列表 过滤算法去除掉的链接列表。当这个d o m 树被完全解析后,去除掉的链接列表还 可以增加到页面的底部,这样,一些去除掉的重要的相关信息链接仍然可以访问。 在整个d o m 树被解析和修改后,网页信息可以以h t m l 形式输出也可以以普 4 华北电力大学硕士学位论文 通文本方式输出。这种只保留文本信息的页面适用于文本摘要、语音翻译以及储存。 1 4 论文的组织 全文共分六章进行论述。 第一章,介绍选题的背景及意义,并对国内外研究现状进行分析,最后提出本 文的主要工作及创新。 第二章,分析当前主要的w e b 页面结构,并介绍未来页面结构的发展方向。 第三章,首先介绍d o m 的定义以及d o m 技术的主要特点,接着分析d o m 如 何对h t m l 页面结构进行分析和及d o m 树结构的创建,最后介绍如何使用d o m 技术来处理d o m 树结构。 第四章,介绍网页清洗技术的应用和方法,并提出本文的网页清洗技术。 第五章,首先分析系统的需求,接着提出系统的总体设计,然后对系统的模块 进行详细的设计和实现,最后对系统进行实验得出结论。 第六章,通过总结本文取得的成果,分析现有工作的得失,给出下一步的开发 思路和方法。 1 5 本章小结 本章介绍了选题的背景及意义,并对国内外现状进行了深入的分析和研究,接 着提出了本文的主要工作和创新,最后叙述了组织结构。 5 华北电力大学硕士学位论文 第二章w e b 页面结构分析 随着w e b 的发展,对w e b 页面进行清洗变的越来越重要。网页清洗的第一步 是对w e b 页面结构的分析,页面结构分析在信息检索、分类、页面适应( p a g e a d a p t a t i o n ) 等方面都有重要作用。 w e b 页面是用h t m l ( 超文本标记语言) 编写的,是一种无结构或半结构化的 文本。这种文本含有大量的标记和超链接,并且很少有完整的句子,这种结构特点 为网页清洗带来了很大挑战。因此,本文在w e b 结构分析和网页清洗方法上做了大 量研究。 本章先对h t m l 语言进行分析,然后对w e b 页面未来使用的x m l ( e x t e n s i b l e m a r k u pl a n g u a g e - - - 口- j 扩展标记语言) 和x h t m l ( e x t e n s i b l eh y p e r t e x tm a r k u p l a n g u a g e - - 可扩展超文本标记语言) 技术也进行简要介绍。 一 2 1h t m l 介绍 h t m l 是网页的通用语言,是本文研究的基础知识,这里将做简单介绍 盯m l 【1 9 】的全称是超文本标记语言,官方的定义描述为“为了发布全球化的消 息,人们需要一种通用的礼节性语言,一种所有计算机本质上可以理解的发布母 语,w w w 使用h t m l 作为这种发布语言”,它是目前w e b 上通用的描述语言, 它用描述性的标记符( 称为标记) 来指名文档的不同内容。标记是区分文本各个组 成部分的分界符,用来把h t m l 文档分成不同的逻辑结构,如段落、标题和表格等。 2 1 1h t m l 组成 从结构上讲,h t m l 文件由元素( e l e m e n t ) 组成,组成h t m l 文件的元素有 许多种,用于组织文件的内容和指导文件的输出格式,不同类型的元素分别描述文 本、图像和超文本链接等。绝大多数元素是“容器”,即它有起始标记和结尾标记。 元素豹起始标记叫做起始链接签( s t a r tt a g ) ,元素结束标记叫做结尾链接签( e n d t a g ) ,在起始链接签和结尾链接签中间的部分是元素体。每一个元素都有名称和可 选择的属性,元素的名称和属性都在起始链接签内标明。比如体元素( b o d y ) : d e m o t h i si sm yf i r s th t m lf i l e 6 华北电力大学硕士学位论文 第一行是体元素的起始链接签,它标明体元素从此开始。第二行和第三行是体 元素的元素体,最后一行是体元素的结尾链接签。结尾链接签用 。 h t m l 标记一般有两个作用,首先是定义文档结构,以便浏览器显示该文档。 其次是提供各种路标,把w e b 客户搜索程序引导到该文档的关键区域。 h t m l 的标记间具有一定的嵌套结构,通过h t m l 解析器( p a r s e r ) 可以将h t m l 页面转化为一棵d o m 树,在此基础上,可以利用d o m 接口完成多种操作。另一 方面。h t m l 不是结构化的,它的许多元素只具有显示效果( 如( i ) , , 等标记) ,另外,h t m l 文件中经常夹杂着大段的脚本( j a v a s c r i p t ,v b s c r i p t 等) 代 码,这些代码完全是为了显示效果而增加的。 h t m l 实际上是普通的文档,没有图形,动画,声音等,但包含了指向这些类 型文件的“指针”,通常称为链接,这就使得w e b 页面包含了一些非文本因素。 正是由于有了h t m l 这种通用语言,人们才可以在因特网上发布多种多样的资 源,通过h t m l 语言可以做到如下几点: 1 、发布带有标题、文本、表格、列表、照片等资源的网络文档; 2 、通过点击超文本链接来浏览网络文档; 3 、设计通过远程服务管理事务,比方说搜索信息、房间预定、产品订货等等; 4 、把分析表格、视频片断、声音片断和其它应用程序都直接包含在它们所在 的文档中。 2 1 2h t m l 结构树 h t m l 结构树是一个n 叉树,它的每一个节点对应页面中的一个h t m l 标记, 树中的父子关系意味着孩子结点的内容包含在父结点的范围之内。即: 1 、如果结点b 嵌套在结点a 之内,那么b 是a 的孩子结点。 2 、否则,如果a 是b 最近的逻辑标题( 如h 1 ) ,那么b 是a 的孩子结点。 h t m l 结构树的构造可以直接利用h t m l 标记之间的嵌套关系。 2 2x m l 和x h t m l x m l 是可扩展标记语言,而x h t m l 是h t m l 和x m l 的综合体,x m l 和 x h t m l 是以后页面结构发展的方向。 2 2 1 可扩展标记语言x m l 可扩展标记语言x m “2 0 】的产生是为了恢复s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u p 7 华北电力大学硕士学位论文 l a n g u a g e - - - 标准通用标记语言) 的强大功能和灵活性,而又不带有s g m l 的复杂性。 虽然x m l 只是s g m l 的一个“受限制”形式,但却保留了s g m l 大部分的功能和 丰富内容,仍然具有s g m l 常用的那些特性。 简单地说,x m l 就是一种文本。一个x m l 文件就是以特定格式安排的文本文 件。这种文件可以在任何计算机系统上使用文本编辑程序来建立。由于它只是一个 文本,因此能够方便地在各个计算机系统问甚至在各个计算平台间传输。例如,在 苹果公司m a c i n t o s h 机上建立的x m l 文件可发送到w i n d o w s 或l i n u x 的p c 机,或 一台主机甚至一台u n i x 服务器。这种可传输性使人们很容易理解为什么x m l 受到 1 1 r 部门和软件销售商如此热烈的欢迎。 x m l 使用标记( 包含在尖括号中的字,例如“ ”) 来识别信息元素。初 看起来,尖括号使x m l 文档很像h t m l 文档。但是h t m l 文档和x m l 文档大相 径庭,并且应用目的完全不同。 h t m l 能够告诉w e b 浏览器怎样绘制和显示一个文档。x m l 则说明包含在一 个文档中的数据。 2 2 2 可扩展超文本标记语言x h t m l 可扩展超文本标记语言x h t m l t 2 1 l 是h t m l 和x m l 的混合物,它是为网络设 备显示( 包括w e b 浏览器、p d a 设备和移动电话) 而特别设计的。2 0 0 2 年1 月2 6 日w 3 c 组织正式将x h t m l l 0 作为w e b 标记的新标准。 w 3 c 主管t i mb e r n e r s l e e 这样评价x h t m l :“x h t m l l 0 连接了现在的w e b 和将来的w e b 它为页面和网站作者提供了进入结构化语言x m l 世界的桥梁, 同时仍然能够保持与h t m l 4 的可操作性” w 3 c 声称,x i t t m l 的主要优点是可扩展性和可移植性: 可扩展性:x m l 文档要求格式良好( 元素嵌套正确) 。使用h t m l ,添加新的 元素组需要更改整个d t d ( d o c u m n e t t y p ed e f i n i t i o n - - 文档类型定义) 。在基于x m l 的d t d 中,新的元素组只需要内部一致并且格式良好,就可以添加到现有的d t d 中,这极大地简化了新元素集合的开发和集成。 可移植性:由于越来越频繁地使用非台式设备来访问因特网文档,而在大多数 情况下,这些设备不具备台式计算机的计算能力,并且不像标准桌面浏览器那样可 适用于格式差的h t m l 。因此,如果这些非桌面浏览器没有接收到格式良好的标记 ( h t m l 或x h t m l ) ,它们可能根本无法显示文档。 一个x h t m l 的经典例子如下; ( ! d o c t y p eh t m lp u b l i c“- w 3 c d t dx h t m l1 0 s t r i c t e n 8 华北电力大学硕士学位论文 “d t d x h t m l l - s t r i c t d t d ”) v i r t u a ll i b r a r y m o v e dt o v l i b o r g ( p 在这个经典的例子中: 由于x h t m l 是以x m l 文档表示的h t m l ,所以它必须在文档的顶部包括初 始x m l 声明 。 x h t m l 文档必须由三组标准规则的其中一组来表示。这些规则存储在一个称 为“文档类型定义( 啪) ”的单独文档中,这些规则可以验证x h t m l 文档结构 的准确性。 x h t m l 文档必须包括完整的头部区域。这个区域包括开始标记( h e a d ) ) 和 标题标记( ( t i t l e ) t i t l e ) ) ,然后以结尾标记( h e a d ) ) 结束。 x h t m l 文档必须包含开始和结尾标记( ) 。在这些标记中,您 可以放置传统的h t m l 编码标记要与x h t m l 符合,这些标记的编码必须是符合 标准的。 最后,使用结尾标记( 锄d y d l l 这是一个文档 b 文档内容力睁 刮h t m b ( a ) h t m l 文档 ( b ) 树型逻辑结构 图3 - ii i t m l 文档及对应的d o g 树结构 可以看出,原来的h t m l 文件被转化为一个树型结构。其中 是树型结 构的根节点; 、( h 1 、 都是 的子节点, 是它们的父 1 1 华北电力大学硕士学位论文 节点: 、 、p 互为兄弟节点。可以看出使用树结构具有以下优点: 1 、对节点操作:添加节点、删除节点、在特定的节点中增加新的属性或节点, 以及修改节点的内容。在网页视图重构和转化中可以通过这样一些操作改变内容的 表现形式和视图的大小,而不改变网页内容。、 2 、导出新结构:在标记树的结构上根据不同的需要导出或生成一种新的代表 h t m l 文档某方面特征的新的结构。 3 3d o m 树结构操作 d o m 的节点是处理的基本单元,它们的类型一共有1 2 种,分别是: e l e m e n t ,a t t r i b u t e ,t e x t ,c d a t a s e c t i o n ,c o m m e n t ,d o c u m e n t ,d o c u m e n t t y p e , d o c u m e n t f r a g m e n t ,p r o c e s s i n g i n s t r u c t i o n ,e n t i t y ,e n t i t y r e f e r e n c e ,n o t a t i o n 。 d o m 把文档表示为节点( n o d e ) 对象树。节点对象不但表示了文档中的元素 而且代表了在一个文档之内的所有其他内容,从文档元素自身到单独的内容要素, 比如属性、注释以及数据等等都包括在内。每一个节点都有其专门的接口,这些接 口对应于节点所代表的内容,但这些接口其实在本质上也是节点。面向对象的支持 者会说所有的d o m 对象都继承于节点而节点( n o d e ) 接口则是用来导航文档树、 增加新节点以修改一个文档结构的主要方法。d o m 是一种与平台和语言无关的编 程接口,它允许程序和脚本动态访问和修改文档的内容结构和类型。它定义了一系 列的对象和方法对d o m 树的节点进行各种随机操作 其他节点类型通常是用来描述一个复杂的文档所包含的信息的格式和结构。 每一种节点是否允许具有子节点取决于它们的节点类型。一些节点根本不允许 包含子节点。如表3 一l 所示列出了每种节点的子节点的类型。 表3 - 1 节点及其允许的子节点 节点类型允许的子节点的类型 d o c u m e n t e l e m e n t ,p r o c e s s i n g l n s t r u c t i o n ,c o m m e n t ,d o c u m e n t t y p e d o c u m e n t f r a g m e n t e l e m e n t , p r o c e s s i n g l n s t r u c t i o n , c o m m e n t ,t e x t ,c d a t a s e c t i o n , e n t i t y r e f e r e n c e d o c u m e n t t y p e 无 勘e m e n t e l e m e n t , p r c e s s i n g l n s t r u c t i o n ,t e x t , c o m m e n t ,c d a t a s e c t i o n , e n t i t y r e f e r e n c e c o m m e n t 无 t e x t 无 a t t r i b u t e t e x t ,e n t i t y r e f e r e n c e 华北电力大学硕士学位论文 e n t i t y r e f e r e n c ee l e m e n t , p r c e s s i n g l n s t r u c t i o n ,t e x t ,c o m m e n t , c d a t a s e c t i o n , e n t i t y r e f e r e n c e e n t i t ye l e m e n t , p r c e s s i n g l n s t r u c t i o n ,t e x t ,c o m m e n t , c d a t a s e c t i o n , e n t i t y r e f e r e n c e c d a i a s e c t i o n无 n o t a t i o n无 p r o c e s s i n g l n s t r u t i o n 无 如果程序试图将一个节点指定为另外一个节点的子节点,但是另外的那个节点 并不允许有这样的子节点的话,就会抛出一个d o m e x c e p t i o n 异常。常见的异常如 表3 2 所示。 表3 - 2o o g e x c e p t i o n 类型 e x c e p t i o n 代码 错误的说明d o m l e v e l i n d e x _ s i z e _ e r r指定的数组索引或大小是负的,或 1 者大子最大值 d o m s t r i n g _ s i z ee r r 给定的文本范围错误 l h i e r a r c h y _ r e q u e s t _ e r r 节点被插入到其特定节点类型不 l 允许存在的地方 i n u s e _ a t t r i b u t e _ e r r试图添加一个在其他地方已经使 l 用的属性 i n v a l i d _ c h a r a c t e re r r制定无效或者非法的字符 1 i n v a l i d _ a c c e s s _ e r r 低层对象不支持特定的对象 2 i n v a l i d _ m o d i f i c a t i o ne r r 试图修改低层对象的类型 2 i n v a l i d _ s t a 您_ e r r试图使用不可用或不再可用的对 2 象 n a m e s p a c e _ e r r 试图使用和命名空间有关的错误2 方式创建或修改一个对象 n o t _ f o u n d _ e r r 在不存在某一节点的上下文中试l 图引用该节点 n o t _ s u p p o r t e d e r r 请求不被支持1 n o _ o a t a _ a l l o w e d e r r 指定的数据不被支持 1 n om o d l f i c a t i o n _ a l l o w e d _ e r r在不允许修改的地方试图修改对l 象 s y n t a x _ e r r指定无效或者是非法字符 2 华北电力大学硕士学位论文 节点是d o m 的基本概念,节点的特有类型,如d o c u m e n t ,e l e m e n t 等都是从 基础的n o d e 接口继承的。d o m 的基本设计原理是。每个事物都是节点”。n o d e 接 口包含基本节点操作所需要的全部方法和属性,但是不包含节点的创建功能。节点 的创建是由d o c u m e n t 接口来处理的。 n o d e 接口中提供了很多的属性,比如n o d e n a m e ,n o d e v a l u e 和a t t r i b u t e 。之所 以提供这些属性,是为了检索他们提供的信息,而不必将他们设定为特定的类型。 在实际应用中,需要对各种节点进行访问。表3 3 简要介绍了几种重要的节点属性 和方法。 表3 - 3n o d e 接口中重要的属性和方法 属性和方法含义 p a r e n t n o d e 指出了节点的父节点 c h i l d n o d e s该节点的子节点的列表 f i r s t c h i l d第一个子节点 l a s t c h n d 最后一个子节点 p r e y i o u s s i b l i n g n e x t s i b l i n g 节点的前,后节点 a t t r i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论