(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf_第1页
(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf_第2页
(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf_第3页
(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf_第4页
(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机应用技术专业论文)从web页中获取数据到移动设备的研究.pdf.pdf 免费下载

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

文档简介

从w e b 页中获取数据到移动设备的研究 摘要 本文提出了一种方法,对i n t e r n e t 上w e b 页面中基于h t m l 的代码进行分析、 转换、提取有用数据,把它转换成x m l 文档;并且把该x m l 文档中数据存储到数 据库;基于此,应用a s p n e tm o b i l ec o n t r o l s 技术把该数据库中数据生成能被 手持移动设备所浏览的信息。 通过面向对象方法的分析,并提取了下列3 个构件: ( 1 )o b t a i n w e b d a t a c o m 构件:获取网页数据并转化为x m l 表达和存储 到数据库; ( 2 )o b t a i n w e b s e r v e r s c o m 构件:从数据库中获取网页数据:。 ( 3 )m o b i l e c o m 构件:把从数据库中获取的网页数据显示在移动设备中。 关键字:x m l d o mo p e n x m lm m i t 移动通信 丛兰里! 要! 茎墼塑塑型登垫塑墨塑堡塞 a b s t r a c t t h ep a p e rp r e s e n t e dam e t h o dg e t t i n gc o n t e n t so rl i n ku r lf r o m w e b , t a n s f r o m i n gt h e n i n t ox m lt e x ta n ds a v i n gt h e mi n t ot h ed a t a b a s e ,s ot h a t h a n d l e - m o b i l ed e v i c e sc a nu s et h e n a 1 1p r o g r a m sw e r ed e v e l o p e di n n e t e n v i r o n m e n ta n du s e da s p n e tm o b i l ec o n t r o ln n i t s t h r o u g ha n a l y z i n gt h eo b j e c t o r i e n t e ds o f t w a r em e t h o d ,w eo b t a i nt h r e e c o m p o n e n t sa sf o l l o w i n g : ( 1 ) 0 b t a i n w e b d a t a c o mc o m p o n e n t ,t h a to b t a i n sw e bd a t a ,t a n s f r o m s t h e mi n t ox m lt e x ta n ds a v e st h e mi n t ot h ed a t a b a s e : ( 2 )o b t a i n w e b s e r v e r s c o mc o m p o n e n t ,t h a tg e t sd a t af r o mt h ed a t a b a s e : ( 3 ) m o b i l e c o mc o m p o n e n t ,t h a tp u t sd a t ao b t a i n i n gf r o mt h ed a t a b a s eo n h a n d l e - m o b i l ed is p l a yd e v i c e s : k e yw o r d s :x m l d o mo p e n x m lm m i tm o b il eo o m m u n i c a t i o n j i 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下( 或 我个人) 进行研究工作所取得的成果。除文中已经注明引用的内 容外,本论文不合任何其他个人或集体已经发表或撰写过的研究成 果。对本文的研究做出重要贡献的个人和集体,均已在论文中作了明 确的说明并表示了谢意。本声明的法律结果由本人承担。 学位论文作者签名:街繁 日期:2 , 0 0 譬年弓月弓日 关于论文使用授权的说明 本人完全了解昆明理工大学有关保留、使用学位论文的规定,即: 学校有权保留、送交论文的复印件,允许论文被查阅,学校可以公布 论文的全部或部分内容,可以采用影印或其他复制手段保存论文。 ( 保密论文在解密后应遵守) 导师签名:盛夔论文作者签名:鱼望 日期:兰竺至垒圭屈三主旦 注:此页放在封面后,目录前 丛婴! 墨主塑墼墼塑型整垫望墨塑堑塞 1 1背景 第一章绪论 i n t e r n e t 已经有2 0 多年的历史了,近几年才出现了i n t e r n e t 热,这主要应 归功于w e b ,w e b 由无数的页面组成,页面上的信息包罗万象,而且时时在增加, 天天在更新。用户只要打开测览器就能得到他们感兴趣的资料。w e b 的易用性使 千家万户都能共享i n t e r n e t 上巨大的信息资源。 到目前为止,几乎所有的w e b 页面都是用h t m l 编写的。h t m l 简单易学又通 用,句法简明紧凑,加上其扩充的表格、帧、脚本等功能,使它得以在w e b 页上 大显身手。但是我们面临的一个任务就是收集w e b 站点的数据,并将它分布到数 据库或其他w e b 页。例如,我们可能襦要从气象站点获得天气预报图,从在线股 票经纪人那里获得股票报价,以及从新闻站点获得行业新闻,然后,这些信息被 放在一个w e b 页上,供商人或销售经理使用i 或者,也许我们需要跟踪历来的气 象资料,并需要每天将来自气象站的天气预报信息存入数据库;我们可能也需要 这些信息再次发布到移动设备供人们浏览;其应用不胜枚举。 但是由于w e b 上的文档和传统的文档比较,如w e b 上的数据信息不同于数据 库,数据库有规范的结构,如关系数据库的= 维表结构:它宥统一的格式,其中 的数据为完全结构化的数据;w e b 上的信息则不然,它有很多新的特点。它们主 要是些大量的、分布的、异构的w e b 信息资源,文档结构性差,其数据多半为无 结构化或者半结构化的,由于无结构化和半结构化的信息不能清楚地用数据模型 来表示,如作为w e b 信息主要载体的h t m l ( 超文本标记语言h y p e r t e x tm a r k u p l a n g u a g e ) ,它提供了一种方便地向读者呈现信息的方法,但h t m l 语言存在着 某些缺点:它只包含如何在测览器软件显示所定义的信息的语义,而没有数据结 构组织的语义。因此由h t m l 语育所表述的w e b 页面不适合作为一种由机器处理的 数据交换的媒介。而w e b 越是瞽及,就越迫切她要求信息内容不仅容易表现,而 且能被应用方便地获取,以便提供服务之间的自动化和互操作。人们要求来自w e b 的信息以结构他的方式来访伺。因此,这虢对信息获取技术提出了新的挑战,人 们迫切需要更好的获取技术。 w 3 c 制定的可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ) 的出现从很大 程度上提供了解决之道。h t m l 和x m l 都是从s g m l ( 即标准通用标记语言 s t a n d a r d i z e d8 e n e r a lm a r k u pl a n g u a g e ) 派生出来的标记语言,因此两者有很 一丛婴墨主茎里鏊墨型鳌鍪鲨墨塑塞 多共通的地方:它们都含有标记,有着相似的语法,但h t m l 和x m l 的最大区别在 于:t i t m l 是一个定型的标记语言,它用固有的标记来描述,显示网页内容,比如 表示首行标题,有固定的尺寸。相对的,x m l 则没有固定的标记,x m l 不能 描述网页具体的外观和内容,它只是描述内容的数据形式和结构。这是一个质的 区别:网页将数据和显示混在起,而x m l 则将数据和显示分开来。x m l 语言系 统建立的目的就是使它不仅能够表示文档的内容,而且可以表示文档的结构,这 样在同时能够被人类理解的同时,也能够被机器所理解,因此它已经广泛地用于 w e b 信息的交换处理 1 。可是如今的w e b 仍然是由许多杂乱的h t m l 网页组成, 而不是组织良好的x 舡文档,因此需要把现有豹h t m l 网页转换成更灵活应用和处 理的x m l 数据,为了解决这个实际的问题,本论文在n e t 平台上开发出h t m l 转 化为x m l 的程序,可以用来将基于w e b 资镢包装成产生所需要的x m l 文档,井把 该x m l 文档中数据存储到s q ls e r v e r 数据库。 另一方面,到2 0 0 3 年1 0 月底,移动电话用户数已达到2 5 7 亿。较上年底新 增5 0 9 3 3 万。我国已成为世界上移动电话用户超过固定电话用户国家之一。2 0 0 5 年,我国移动通信用户将达3 亿。这意味着未来几年内,我国每5 人将拥有一部 手机,普及率将由现在的1 3 增加至2 0 ,市场成长空间依然巨大 3 。 尽管手持移动设备存在功率小、持续运行时间短、屏幕小、存储容量小、多 样化要求多种传输接口和多种显示方式等弱点,但是它们有着体积小携带方便的 优点,因此手持移动设备已经成为我们生活的一部分,并且越来越多的新设备添 加到其中,比如:p a l m p i l o t ,p o c k e tp c ,随着手持移动设备数量的增长,通过移 动设备查看i n t e r n e t 信息,也成了一种强烈的市场需求我们怎样满足这些市场 需求呢? 幸运的是这些新的移动设备都可以连接网络或者执行应用程序,现在的 移动应用程序被开发成可以传递任何类型的数据给世界上任何地方的任何人。不 同的移动设备支持不同的编程语言:有些支持w a p 和w m l ,有些则支持h t m l 或者 受限制的h t m l ,还有些同时支持以上两种或者其他不同的语言 4 。为了支持所 有类型的移动设备,开发人员不得不为每一种语言刨建不同的应用程序。但是微 软已经为移动应用程序的开发生产了新的平台一m i c r o s o f tm o m l ei n t e r n e t t o o l k i t ( 即m m i t ,又称为a s p n e t 移动控件) 或者倚单的叫做移动n e t ( n e t m o b i l e ) ,它是微软a s p n e t 和微软n e t 框架的扩展。移动n e t 是一组用来创建 应用程序的服务器端的w e bf o r m s 控件,这些控件通过产生w m l l 1 h t m l 3 2 或 者c h t m l 给不同的设备呈现不同的输出( 即对应不同设备有不同的呈现) 。基于此, 本论文也将利用从w e b 页中获取的数据存储在s q ls e r v e r 数据库后利用微软的 2 从w e b 页中获取数据到移动设备的研究 m m i t 平台发送到移动设备。 怎样组织最精简的i n t e r n e t 信息怎样适应手持移动通信设备多样化要求发 布信息,为手持移动通信设各的持有者服务,是本项目研究的出发点。 1 2 课题研究内容 用于w e b 信息提取的软件系统称为包装器( w r a p p e r ) ,它是一种软件构件,负 责将隐含在h t m l 文档中的信息提取出来,并且转换成能被进一步处理的以某种数 据结构存储的数据 5 。 本文提出利用n e t 搭建一个包装器平台,提供方便的用户界面。h t m l 网页内 容编辑人员选定所需要的h t m l 内容后,以可视化的图形方式,用鼠标进行点选 操作即可完成对h t m l 页面元素的获取。用户不必了解所编辑h t m l 文件的源代码, 即可对现有的万维网上w e b 页面中基于h t m l 代码进行分析、转换、提取有用数 据,并把它转换成x m l 文档,把该x m l 文档中数据存储到s q ls e r v e r 数据库,并 应用x m lw e b 服务和m i c r o s o f tm o b i l ei n t e r n e tt o o l k i t 把这些数据生成标记 语言代码页面。它能被袖珍电脑或手机所浏览。该系统模型的得到,分为两个步 骤: 第一步w e b 信息获取及其x m l 表达并把该x m l 文档中数据保存到数据库; 第二步数据库中信息载入到移动设备( 如图1 ) : ( 1 ) 用n e t 描 i 获取数据平台 ( 2 ) 将a t m l 代 转换为x m l 代 马 ( 3 ) x m l 中数据 r 存到数据库 图1 从w e b 页中获取数器到移动设备的步骤 1 3 课题研究的系统模型实用价值 1 3 1该系统模型提供以下功能 用户可以任意指定u r l 来获取w e b 信息; 目标的h t m l 页面可以是静态网页,也可以动态生成的t 提供可视化的界面让用户拖拉式选择需要获取的页面元素; 可以存储和编辑获取的页面元素信息并存储为x m l 文档; 丛! 翌基! 茎墼墼塑型整垫垦墨笪堑壅 该x m l 文档的数据也可以添加和删除; 该x m l 文档的数据也可以存储到数据库: 使用a s p n e t 移动控件与x m lw e b 服务的集成来对该数据库进行操作,使 得该信息能被移动设各用户所浏览和查询。 1 3 2 该系统模型带来如下的优势 有效利用现有的信息资源; 快速建立和商业伙伴的合作; 无缝升级到基于x m l 的网站系统: 提供多渠道发布的转换中间件; 将原有的信息的内容和表现更好的分离,有利于增加商业机会,提高企业灵 活度和竞争力。 1 3 3 应用前景 该产品可以应用的情景有: 网站与增值服务提供商的数据交换: 一般的情形,网站已经通过i n t e r n e t 发布其信息内容( 比如汇率、证券信 息、气象信息等) ,这样的信息通常是通过其服务系统不同的格式和渠道进行发布 ( 比如提供给w a p 手机) 在进行实施过程中,要直接开放其原来的后台数据库可 能对数据来源的安全性造成影响;或者有可能不同的频道信息来自不同的网站, 也就可能来自不同的平台和数据库。这就需罄直接针对h t m l ,通过调用应用服务 器而不是访问后台数据库的方式来获取犀页信息,并且转换成为统一的基子x ) 4 l 格式。x m l 具有独立于平台的发布槊邀的特点,可以根好地用于各种不同方式的 发布。 网站的重新设计: 目前h 孙l 的固有缺点已经使得原来的网站模式很难符合新的需求,特别是在 商务之间相互通信的场合,x m l 的产生和相关技术的成熟,使得越来越多的网站 逐渐升级到基于x m l 设计的网站。在这个过程中既要将新的内容以x m l 的方式存 储和发布,同时也要考虑到兼容原来的数据,这就需要将原来的数据进行组织和 转换,因为许多h 惴l 髓页中搀杂了许多重要的信息。该系统模型提供了这样机制, 可以将h t m l 转换成为独立于应用的x m l 通用格式。然后进行网站的发布。这将是 4 从w e b 页中获取数据到穆动设备的研究 新一代网站发展中的重要环节。 移动设备增值服务: 当前,移动设备高速接入互联网的能力日益增强,移动通信产业形态也渐渐 由单纯的产品经济业态完成了向服务经济业态的进化。移动增值服务将取单纯的 移动通信产品而代之,成为这一时代更重要的产业利润来源 3 。通过移动设备查 看i n t e r n e t 信息成为一种市场需求,该系统模型提供实现这种市场需求的一种解 决方案。 第一章该论文研究的系统模型涉及到的技术 2 1x m l 技术简介 2 1 1什么是x m l ? 作为w 3 c 的推荐标准,可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,缩 写为x m l ) 是一种旨在实现无障碍网络数据交换的协议。x m l 是一种扩展性标识语 言,是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 pl a n g u a g e ”标准通用标 记语言) 针对特定应用领域的子集,或者说是s g m l 的一种受限形式 6 。根据定 义,x m l 文件是合乎规范的s g m l 文件,它保留了s g m l 主要的使用功能,同时大 大缩减了s g m l 的复杂性 6 ,即x m l 是s g m l 的简化版,只不过省略了其中复杂和 不常用的部分,简化了定义文件类型的过程,简化了编程和处理s g m l 文件的过程, 简化了在w e b 上的传送和共享 7 ;x m l 文档由一组具有属性的标记和数据组成。 标记可以根据用户需要自行定义。通过属性对所标记的数据进行描述和约束,是 典型的树形结构,它可以将数据与格式分开,它可以储存数据和共享数据的特性 使得x m l 无所不能,如x m l 使开发人员能够将结构化数据,从许多不同的应用程 序传递到桌面。进行本地计算和演示;x m l 允许为特定应用程序创建数据格式; 它还是在服务器之间传输结构化数据的理想格式。x m l 已开始在国内外大量应用 7 。 2 1 2 x m l 文档包含三个部分 一个x m l 文档声明; 一个关于文档类型的定义 5 怂竖! 亘主茎壑墼塑型鳖塑望鱼堕竺塞 用x m l 标识创建的内容。 举例说明: ( ! d o c t y p efj 1 e l i s ts y s t e m ”f i l e l js t d t d ” q u i c ks t a r to fx m l s m i t h 其中第一行 就是一个x m l 文档的声明,表示文档遵循的是 x m l 的1 0 版的规范;第二行说明这个文档是用f i l e l is t d t d 来定义文档类型的, 第三行以下就是内容主体部分:第三行定义了文档里面的第一个元素( e l e m e n t ) , 也称为根元素: ,这个名称是自己根据需要定义的,再下面定义了一 个子元素: ;再下面定义了两个孙元素:t i t l e 和a u t h o r ,分别说明文章 的标题,作者。其中类似 , 的语匀就是自己刨建的标记( t a g s ) , 它们和h t m l 标记不一样,例如这里的 是文章标题的意思,h t m l 里的( t i t l e 是页面标题。 2 1 3x 札文档中有关的术语 e l e m e n t ( 兀素) ; 在x m l 中,它是组成x m l 文档的最小单位,一个元素由一个标识来定义,包 括开始和结束标识以及其中的内容,就象这样: s m i t h ,并 且在x m l 中,标识需要我们自己创建。 t a g ( 标识) 标识是用来定义元素的。在x m l 中,标识必须成对出现,将数据包围在中1 9 。 例如这样一个元素: s m i t h ,其中 就是标识。 a t t r i b u t e ( 属性) : 什么是属性? 看这段x m l 代码: s m i t h 。 其中s e x 就是a u t h o r 的属性之。属性是对标识进一步的描述和说明,一个标识 6 从w e a 页中获取数据到移动设备的研究 一_-_-_-_-_-_-_h_-一可以有多个属性,每个属性都有它自己的名字和数值,属性是标识的一部分。x m l 中属性也是自己定义的。 d e c l a r a t i o n ( 声明) 在所有x m l 文档的第一行都有一个x m l 声臻。这个声明表示这个文档是一个 x m l 文档,它遵循的是哪个x m l 版本的规范,一个x m l 的声明语句就象这样: d t d ( 文件类型定义) d t d 是用来定义x m l 文档中元素,属性以及元素之间关系的。通过d t d 文件 可以检测x m l 文档的结构是否正确。但建立x 札文档并不一定需要1 ) t b 文件。 w e l l f o r m e dx m l ( 良好格式的x m l ) 一个遵守x n l 标准的所有规则的文档称之为”良好格式”。如果x m l 文档的格 式不好。分析程序就不能正确地解释它,并拒绝该文档资料。良好格式的x m l 文 档必须有一个根元素,其它元素都是这个根元素的子元素,属于根元紊一组。良 好格式的x b i l 文档的内容书写时必须遵守x m l 语法。( 有关x m l 语法将在后面说明) 完全遵守这些规则的x m l 文档仍然可能是无效的,格式良好的x m l 文档仅仅 符合x b t l 标准;为了使之有效,它们还必须符合对x m l 应用程序所规定的规则; 为了检查文档是否符合应用程序的规则,需要有一种指定这些规则的方式。 v a l i dx m l ( 有效的x m l ) x m l 支持两种方法,定义在文档中可以放置哪些元素和属性及其放置顺序一 - - d o c u m e n tt y p ed e f i n i t i o n $ ( d t d ) 和x b l ls c h e m a s 。d t d 的语法相当复杂,并 且它不符合x m l 文档的标准它逐渐被模式所代替;x m ls c h e m a s 文档本身就是 x m l 文档,可以用处理x m l 的工具来处理它,而不必专门为x m ls c h e m a s 使用特 殊工具。x 强ls c h e m a s 简单易懂。懂得x y l 语法耜规则的人都可以立刻理解它, 一个x m ls c h e m a s 有类型定义和元素声明等部件组成,用来衡量格式良好的 元素信息的有效性;进一步还可以规定这些元素项目和其子节点,比如属性和元 素的缺省值、元素类型和属性表等。 2 ,1 6x 赫l 语法 2 1 6 1 x m l 语法规则 创建x m l 文档必须遵守下列重要规则 7 一坠坚! 墨主壅墼墼塑型望垫壁墨笪堑壅 规则1 :必须有x m l 声明语句 声明是x m l 文档的第一句,其格式如下: 声明的作用告诉其处理程序:这个文 档是x m l 文档。声明语句中的v e r s i o n 表示文档遵守的x m l 规范的版本; s t a n d a l o n e 表示文档是否附带d t d 文件,如果有,参数为n o ;e n c o d i n g 表示文 档所用的语言编码,默认是u t f 一8 。 规则2 ;是否有d t d 文件 如果文档是一个有效的x m l 文档”,那么文档要有相应d t d 文件。并且严格 遵守d t d 文件制定的规范。d t d 文件的声明语句紧跟在x m l 声明语句后面,格式 如下: 其中: ”! d o c t y p e ”是指要定义一个d o c t y p e :”t y p e - o f d o c 。是文档类型的名称,由我们 自己定义,通常于d t d 文件名相同;”s y s t e m p u b l i c 。这两个参数只用其一。s y s t e m 是指文档使用的私有d t d 文件的网址,而p u b l i c 则指文档调用个公用的d t d 文件的网址。8 d t d - n a m e 就是d t d 文件的网址和名称。所有d t d 文件的后缀名为 d t d ”。还是用上面的例子应该写成这样: 规则3 :注意x m l 文档中的大小写 在x m l 文档中,大小写是有逸别的。 和( p ) 是不同的标识。注意在写元素 时,前后标识大小写要保持一样。例如: s m i t h ,写成 s m i t h 是错误的。 规则4 :给属性值加g l 号 在x m l 中则规定,所有属性值必须加引号( 可以是单引号。也可以是双引号) , 否则将被视为错误。 规则5 :所有的标识必须有相应的结束标识 在x m l 中规定,所有标识必须成对出现,有一个开始标识,就必须有一个结 束标识。否则将被视为错误。 规则6 :所有的空标识也必须被关闭 在x m l 中,规定所有的标识必须有结束标识,针对空标识,x m l 中处理的方 法是在原标识最后加,就可以了。例如: 应写为: 养成良好的注释习惯将使文档更加便于维护,共享。 2 1 6 4 o d a t a 的语法 c d a t a 全称c h a r a c t e rd a t a ,翻译为字符数据。在写x m l 文档时,有时需要 显示字母,数字和其它的符号本身,比如 ,而在x m l 中,这些字符已经有特殊 的含义,这就需要用到c d a t a 语法。语法格式如下: 例如: 在页面上显示的内容将是 s m i t h ( a u t h o r ” 2 1 ,6 5n a m e s p a c e s 的语法 n a m e s p a c e s 翻译为名字空间。当我们在一个x m l 文档中使用他人的或者多个 9 扶w e b 页中获取数据到移动设备的研究 d t b 文件,就会出现这样的矛盾:因为x m l 中标识都是自己创建的,在不同的d t d 文件中,标识名可能相同但表示的含义不同,这就可能引起数据混乱。比如在一 个文档 w o o dt a b l e 中 表示桌子,而在另一个文档 n a m e l i s t 中 表示表格。如果我们需要同时处理这两个文 档,就会发生名字冲突。为了解决这个问题,我们引进了n a m e s p a c e s 这个概念。 n a m e s p a c e s 通过给标识名称加一个网址( u r l ) 定位的方法来区别这些名称相同的 标识。n a m e s d a c e s 同样需要在x m l 文档的开头部分声明,声明的语法如下: ,其中y o u r n a m e 是由我们定义的n a m e s p a c e s 的名称,u r l 就是名字空间的网址。假设上面的桌子 。文档来自 h t t p :w w w z h u o z i c o m , 我们 就可以声明为 然后在后面的标识中使用定义好的名 字空间: w o o dt a b l e ,这样就将这两个 t a b l e t 区分开来。 2 2 文档对象模型( d o m ) 简介 2 2 1 文档对象模型( d o m ) 文档对象模型( d o c u m e n to b j e c tm o d e l ,缩写为d o m ) 是w o r l dw i d ew e b c o n s o r t i u m ( w 3 c ) 制定的一套标准接口规范,是一个对象化的x m l 数据接口。d o m 是x m l 文档的编程基础,它定义了处理执行文档的途径。在应用程序中。基于d o m 的x m l 分析器将一个x m l 文档转换成了一个对象模型的集合( 这个集合通常被称 为d o m 树) ,应用程序可以通过对该d o m 树的操作,实现对x m l 文档中数据的操作。 通过d o m 接口,应用程序可以在任何时候访问x m l 文档中的任何一部分数据,因 此,这种利用d o m 接口的机制也被称作随机访问机制。 x m l 的一个显著特征就是它是结构化的。在结构化文档中,信息是按层次化 的树形结构组织的。所以结构化文档模型的组织也必然是树形的。一个d o m 接口 的x m l 分析器,在对x m l 文档进行分析之后,文档中的信息都会被转化成一棵对 象节点树。在这棵节点树中,有一个根节点一一d o c u m e n t 节点,所有其他的节点 都是根节点的后代节点。d o m 节点树生成之后,就可以通过d o m 接口访问、修改、 添加、删除、创建树中的节点和内容。 例如,对于下面的x m l 文档: 1 0 从w e b 页中获取数据到移动设备的研究 ( a u t h o r ) 张三 a u t h o r ) x m l 入门 ( b o o k s 用d o m 分析器分析之后,就会得到如图2 所示的树结构。 d o c u m e n t x m lb o o k s b o o k 7 吣 a u t h o rt i t l ea u t h o rt i t l e 张三x m l 入门李四x m l 提高 图2x m l 代码用x m ld o nt r e e 表示 在这棵文档对象树中,文档中所有的内容都是用节点来表示的。一个节点又 可以包含其他节点,节点本身还可能包含一些信息,例如节点的名字、节点值、 节点类型等。 由图2 可以看出,在d o n 中,文档的逻辑结构类似一棵树。文档、文档中的 根、元素、元素内容、属性、属性值等都是以对象模型的形式表示的。文档中的 根实际上也是一个元素,之所以要把它单独列出来,是因为在x m l 文档中,所有 其他元素都是根元素的后代元素,而且根元素是唯一的。具有其他元素所不具有 的某些特征。图2 中给出的例子比较简单,事实上,d o m 中还包含注释、处理指 令、文档类型、实体、实体引用、命名空间、事件、样式单等多种对象模型。 2 2 2d o m 定义了一系列的对象 丛竖! 基主茎璧! 堕型堡塑望鱼塑堕壅 d o c u m e n t 对象:作为树的最高节点,d o c u m e n t 对象是对整个文档进行操作的 入口。 e 1 e m e n t 和h t t r 对象:这些节点对象都是文档某部分的映射节点的定级 层次恰好反映了文档的结构。如( a u t h o r ) 张三a u t h o r t e x t 对象:作为e l e m e n t 和a t t r 对象的子节点,t e x t 对象表达了元素或属 性的文本内容。t e x t 节点不再包含任何子节点。如:张三 集合索引( n o d e l i s t ) :d o m 提供了几种集合索引方式,可以对节点按指定方 式进行遍历。 d e 对象:d 洲树中的所有节点都是从n o d e 对象继承而来的,n o d e 对象定 义了一些最基本的属性和方法,利用这些方法可以实现对树的遍历,同时, 根据属性还可以得知节点的名称、取值并判断其类型。 8 元素节点和叶节点如果和x m l 对比来看,元素节点表示了名称标签而叶节点 则表示了节点内容。如上一节例子中的b o o k s ,b o o k a u t h o r ,t i t l e 表示是元素节 点,而“张三”表示是叶节点。由此可见在d o m 树操作过程如果想获取元素节点 名称那么必须申明一个e 1 e m e n t 对象,如上例中“b o o k s ”“b o o k ”,如果想获 取叶节点名称必须申明一个n o d e 对象或者n o d e l i s t 对象,如上例中的 “a u t h o r ”,如果想获取叶节点内容必须申明一个t e x t 对象。可以看出,一个结 构良好的x h l 文档和d o m 树有着一一对应的关系。 2 2 3d o l l 的优点和缺点 d o m 分析器通过对x m l 文档的分析,把整个x m l 文档以一棵d o m 树的形式存 放在内存中d o ma p i 可以让应用程序沿着任意方向在x m l 文件中导航和可以随 时对d o m 树中的任何一个部分进行访问与操作,也就是说,通过d o m 树,应用程 序可以对x m l 文档进行随机访问。这种访问方式给应用程序的开发带来了很大的 灵活性,它可以任意地控制整个x m l 文档中的内容。 然而,由于d o m 分析器把整个x m l 文档转化成d o m 树放在了内存中,因此, 当x m l 文档比较大或者文档结构比较复杂时,对内存的霈求就比较高t 而且,对 于结构复杂的树的遍历也是一项比较耗时的操作 1 。 不逑,由于d o m 分析器的树结构的思想与x 虬文档的结构相吻合,而且,通 过d o m 树机制很容易实现随机访问,因此,x m ld o m 对象提供了一个标准的方法 来操作存储在x m l 文档中的信息,d o m 应用编程接口( a p i ) 用来作为应用程序和x m l 秩w e b 页中获取数据至移动设备的研究 文档之间的桥梁,d o m 分析器还是有很广泛的使用价值的。 2 3x p a t h 查询语言简介 x p a t h 是一种由w o r l dw i d ew e bc o n s o r t i u m ( w a c ) 开发的工业标准,它是 为查找x m l 文档中的单个信息而定义的一套语法规则的集合。x p a t h 的主要目的 是对一个x m l 文档进行寻址,用来定位x m l 文档中各个部位和选择文档中的构成 部件( 元素、属性、文字内容等) 。此外,它也为操纵字符串、数值平布尔值提供 了一些基本的功能。x p a t h 在x m l 文档的个抽象、逻辑结构一l 进行操作除了 埘来寻址外,x p a t h 也被设计为包含一个能够用于匹配( 测试一个节点是否与一个 样式匹配) 的自然子集 1 3 ,利用x p a t h ,通过指定类似于目录的路径( 即名称) 以及路径中的条件,可以检索元素集合。在某种程度上,x p a t h 对于x m l 就像s o l 对于关系数据库。 2 ,4t w e b b r o w s e r 控件 i e 中包含了一个名为w e b b r o w s e r 的控件,通过这个控件,可以轻易的将w e b 浏览功能整合到应用程序中w e b b r o w s e r 控件包括许多不同的组件,其中大多数 是c o m 对象,因此可以在程序中重复使用它们,下面先看一个w e b b r o w s e r 宿主应 用程序( 如i e ) 的结构。 从w e b 页中获取数据到移动设备的研究 由图3 可见,由顶层开始,第一个组件是w e b b r o w s e r 宿主,是开发的任何一 个使用w e b b r o w s e r 控件的程序。可以通过v b 、v c 、c # 或任何支持c o m 的开发工 具来创建该程序。容器必须能够掌管a c t i v e x 控件,其余部分由w e b b r o s e r 控件 来照管。其中w e b b r o w s e r 控件既是a c t i v e x 控件也是a c t i v ed o c u m e n t 宿主,即 是说它既可以被任何一个a c t i v e x 控件容器所掌管也可以掌管其它a c t i v e 控件, 例如想加载d o c 文件的话,w e b b r o w s e r 控件就会加载m i c r o s o f tw o r d 。 s h d o c v w d l l 掌管w e b b r o w s e r 控件( 以及其他控件和c o m 对象) ,并为宿主程序提 供浏览功能,该组件可以使我们的应用程序中包含一些i e 窗口特有的功能, s h d o c v w d 1 1 提供与浏览、内置连接、收藏夹和历史管理以及图形支持相关的功 能。如果想加载h t m l 文件的话,w e b b r o w s e r 控件会加载名为m s h t m l 的组件,该 组件是由m s h t m l d 1 1 实现的。m s h t m l d l l 是在i n t e r n e te x p l o r e r4 o 或更高 版本中进行h t m l 语法分析和翻译的组件,同时通过动态h t m l 对象模型提供 h t m l 文档。因此m s h t m l 是一个a c t i v ed o c u m e n t 服务器接口,允许应用程序以 标准的c o m 接口来把它嵌入到程序中并通过它暴鼯的接口来访问其中的网页及网 页元素。同时它也可以掌管a c t i v e x 控件( 因为网页里面可以插a c t i v e x 控件,所 以它是掌管a c t i v e x 控件的控件) ,还可以掌管其它组件如:a c t i v e 脚本编程引 擎( v b s c r i p t 和j s c r i p t ) 、j a v aa p p l e t 、p l u g i n 等很多东西( 因为这些东西在 i e 里都是作为a c t i v e x 控件实现的) 。 1 7 通过s h d o c v w d l l 提供的丰富接口,网页中的元素可以访问应用程序提供的 属性和方法( 如w i n d o w e x t e r n a l a d d p a v o r i t e ( 1 0 c a t i o n h r e f ,d o c u m e n t t i t l e ) 则是调用i e 的a d d f a v o r i t e 方法把当前页添加到收藏夹) ,而通过m s h t m l d 1 1 提供的接口,应用程序则反过来可以访问网页中元素的属性、方法、行为、事件 等等。 w e b b r o w s e r 控件提供的一个重要c o m 接口是i w e b b r o w s e r 2 。它提供一个浏览 器的基本操作接口,以及这个接口的一些方法,例如比较常用的方法是 n a v i g a t e n a v i g a t e 2 ,它使得浏览器控件打开一个指定的目标,例如一个文件夹, 一个网页,或者一个活动文档。比较常用的属性是d o c u m e n t ,它为活动的文档返 回自动化对象。如果h t m l 当前正被显示在w e b b r o w s e r 中则d o c u m e n t 属性提供 对d h t m lo b j e c tm o d e l 的访问途径。 2 5m s h t m l 简介 1 4 一 垒! ! ! 婆至! 茎塞墼堕型竺垫望墨箜堕墨 2 5 i 什么是m s h t m l ? h t m l 文档是由标记语言构成,即俗称的t a g 。微软的浏览器i e 和w e b b r o w s e r 控 牛对子这些标记实现了一对应韵对象模型( o b j e c t m o d e i ) ,峦赫s h t 礼仇l 葑 装,它含有能分析w e b b r d w s e r 控件中所包含文档的h t m l 分析器。i e 浏览器的 实现也是由m s h t m l d l l 来实现的。通过m s h t m l d l l ,我们可以直接操作对象模型 的属性方法。m s h t m l 的对象模型是基于c o m 组件对象的,对象的接口是基于 i d is p a t c h 操作m s h t m l 对象模型必须通过i d is p a t c h 接口。m s h t m l 中封装了许多 这样豹接口。例如,l h t m l a nc h o r e l e m e n t 接口对应与h t m l 文档中的超连接标记 ,i h t m l h r e l e m e n t 接口对应 标记,i h t m l t a b l e 接口对应 标记。其中 最重要的是i h t m l d o c u m e n t 2 接口,它对应d o c u m e n t 组件,d o c u m e n t 组件即相当于 h t m l 文档。要使用对象模型接e l ,就要获得i h t m l d o c u m e n t 接e l ( 文档接e 1 ) ,它获得 的途径之一就是生成w e b b r o ws e l - 控件的一个实例;一旦有了这个接口就能存取 文档中所有的元素,可以使用l h t m l d o c u m e n t 接口获得或修改文档的属性,可以直 接操作对象模型的属性,方法,事件,大多数的元素提供一个接口操纵那个特定 的元素,这些元素相关的接口名字具有i h t m l x x x x e l e m e n t 的格式,这里x x x x 是元素 的名字,如i m g 元素提供一个i h t m l i m g e l e m e n t 接口,能用来明确地操纵i m g 元素。 即可以帮助我们把网页中不同类型的网页元素、撵式等提取出来。 1 8 1 2 5 2 访问d h t m l 对承模型( o b j e c tm o d e i ) 应用程序通过i w e b b r o w s e r 2 接口的i w e b d r o w s e r 2 n a v i g a t e 2 方法,可以让 浏览器定位( n a v i g a t e )

温馨提示

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

评论

0/150

提交评论