(计算机应用技术专业论文)smart+client与office+system整合应用研究.pdf_第1页
(计算机应用技术专业论文)smart+client与office+system整合应用研究.pdf_第2页
(计算机应用技术专业论文)smart+client与office+system整合应用研究.pdf_第3页
(计算机应用技术专业论文)smart+client与office+system整合应用研究.pdf_第4页
(计算机应用技术专业论文)smart+client与office+system整合应用研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 目前的应用系统软件,多数分为f a tc l i e n t 和t h i nc l i e n t 。f a tc l i e n t 具有丰 富的接口、易开发、反应时间快;但软件需要在客户端执行,大量部署和未来更 新上有很大的困难;t h i nc l i e n t 软件的功能存在于服务器端,客户端不需要进行 任何安装与部署的工作,容易部署、管理与更新、执行环境不依附于客户端环境 等优点。但t h i nc l i e n t 必须在网络环境下才能运行、接口也有一定的限制、架构 因素导致开发上的困难。 s m a r tc l i e n t 是结合了t h i nc l i e n t 和f a tc l i e n t 的优点,整合过后的一种全 新软件模式。它可以充分的运用网络和w e bs e r v i c e s 存取各种外部系统的资源。 部署和更新上和浏览器这类的t h i nc l i e n t 完全类似。但它又和常见的桌上型软 件相同,都能使用本机计算机的所有资源,充分发挥客户端计算机的运算能力。 o f f i c e2 0 0 3 在x m l 的基础上为w o r d 发展出了w o r d m l 标记语言,并继承了 作为数据交换标准而存在的x m l 的优点。 本研究借用s m a r tc l i e n t 的思路,利用o t i i c e2 0 0 3 对x m l 支持和w e b s e r v i c e s 的访问能力,用户在不离开o f f i c e 的情况下访问企业数据,让其成为智 能客户端应用程序的运行平台。 本文从h t m l 文档出发,通过研究h t m l 文档和w o r d m l 文档格式,实现 对h t m l 文档的解析以及h t m ld o m 结构的转换;从而进一步实现将h t m l 文档转换成w o r d m l 文档,再将w o r d m l 文档转换成w o r d 文档的过程。另一方 面研究如何使用x s l t 和x p a t h 从w o r d m l 文档中提取有用信息并转换为新的 x m l 文件最后到生成h t m l 文档。文中介绍了如何使m i c r o s o f t n e t 类库对x m l 进行分析和存取。 本文跳出了o f f i c e 系统的开发停留在通过c o m 调用本地w o r d 对象来操作 w o r d 文档这一过程,通过o f f i c e2 0 0 3 支持的x m l 来构建其他应用,在此基础上, 编写出一个简单的定购系统来说明。 关键词:超文本链接语言,w o r d m l ,可扩展标记语言,d o m ,x s l tx p a t h 解析器,转换器 a b s t l a c t a b s t r a c t t h ec u r r e n ta p p l i c a t i o ns o f t w a r ei sm a i n l yc a t e g o r i z e di n t of a tc l i e n ta n d t h i nc :l i e n t f a tc l i e n ti sc h a r a c t e r i z e dw i t hr i c hi n t e r f a c e s e a s yd e v e l o p m e n t a n df a s ts p e e do fr e s p o n s e b u ti ti sr u na tt h ec l i e n ts i d ea n dt h u si ti sd i 仃i c u l t t ob ee x t e n s i v e l yd e p l o y e da n du p d a t e d t h i nc l i e n te x e c u t e si t s e l fa tt h e s e r v e rs i d ea n dn oa n yi n s t a i l m e n ti sn e e d e da tt h ec l i e n ts i d e 1 nc o m p a r i s o n w i t hf a tc l i e n t ,t h i nc l i e n ti se a s yt ob ei n s t a l l e d m a n a g e d ,u p d a t e da n di s i n d e p e n d e n to ft h es o f t w a r ee n v i r o n m e n ta tt h ec l i e n ts i d e h o w e v e r , t h i n c l i e n to p e r a t e so n l yu n d e rt h en e t w o r ke n v i r o n m e n t f u r t h e r m o r e ,t h e r ea r e s o m er e s t r i c t i o n so ni t si n t e r f a c e s a sw e l la ss o m ed i f f i c u l t i e si nd e v e l o p m e n t r a i s e db yi t si n f r a s t r u c t u r e s m a r tc l i e n ti san o v e lm o d e io fs o f t w a r e w h i c ht a k e sa d v a n t a g e so ft h i n c l i e n ta n df a tc l i e n ts i m u l t a n e o u s l y i t e x p l o i t sb o t hn e t w o r ka n dw e b s e r v i c e st oa c c e s sa l ik i n d so fe x t e r n a lr e s o u r c e so fo p e r a t i n g s y s t e m a l t h o u g hi ti sc o m p l e t e l ys i m i l a rt ob ed e p l o y e da n du p d a t e dw i t ht h i nc l i e n t 。 s u c ha si n t e r n e te x p l o r e s m a r tc l i e n tc a ne x p l o i ta l it h er e s o u r c e so fi o c a i c o m p u t e rt oc o m p u t e ,w h i c hi si d e n t i c a lw i t ht h ep o p u l a rd e s k t o ps o f t w a r e b a s e do nx m l w o r d m li no f f i c e2 0 0 3i sd e v e l o p e df r o mw o r d i ti n h e r i t s t h em e r i t so fx m la st h es t a n d a r do fd a t ae x c h a n g e i nt h i st h e s i s b ye x p l o i t i n gt h ea c c e s s i b i l i t yo fs m a r tc l i e n tt ox m la n dw e b s e r v i c e s ,o f f i c e2 0 0 3i sd e s i g n e dt ob et h ep l a t f o r mo fs o m ea p p l i c a t i o n so f s m a r tc l i e n t w em a k ei t p o s s i b l ef o ru s e r st oa c c e s sb u s i n e s sd a t aw i t h o u t l e a v i n go f f i c e2 0 0 3 f i r s to fa 1 1 w ea n a l y z et h ef o r m a to fh t m ld o c u m e n ta n dc o n v e r ti tt ot h e f o r m a to fh t m lc o m t h e n t h ef o r m a to fh t m lc o mi st r a n s l a t e di n t ot h e f o r m a to fw o r d m la n df i n a l l y , i n t ot h ef o r m a to fw o r d o nt h eo t h e rh a n d w e s t u d yh o wt ou t i l i z ex s l ta n dx p a t ht oe x t r a c tu s e f u ii n f o r m a t i o nf r o mt h e d o c u m e n to fw o r d m la n dt r a n s f o r mj tj n t ot h ed o c u m e n to fx m la n df i n a l l y , t o g e n e r a t et h ed o c u m e n to fh t m l f u r t h e r m o r e w ei n t r o d u c eh o wt ou s e m i c r o s o f t n e tt oa n a l y z ea n da c c e s sx m l a b s t r a c t d i f f e r e n tf r o mt h ed e v e l o p m e n ti no f f i c e w h i c ho p e r a t e st h ed o c u m e n to f w o r db y a c c e s s i n gt h el o c a lo b j e c t so fw o r dt h r o u g hc o m ,s o m en e w a p p l i c a t i o n sa r ef i r s tc o n s t r u c t e df r o mx m li no f f i c e2 0 0 3 a n dt h e nas i m p l e o r d e rs y s t e mi si m p l e m e n t e d k e y w o r d s :h t m l ,w o r d m l ,x m l ,d o m ,x s l tx p a t h ,p a r s e r 。c o n v e r t e r i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 一年l d 月i d 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名:童至! 墨 日期:游fo 月沁日 第一章引言 1 1 本文的研究背景和意义 第一章引言 目前开发的应用系统软件,多数都能区分为t h i nc l i e n t 、f a tc l i e n t 这两大 范畴,所谓的f a tc l i e n t 可以想象为桌上型软件,其具备一些特色,如丰富的 使用者接口、容易开发、反应时间快等优点。f a t c l i e n t 最大的缺点在于软件的 功能需于客户端执行,因此在大量部署方面有很大的困难,加上软件本身也有很 大一部份的功能需要依附在客户端的环境,如此将导致未来更新上的困难。 最常见的t h i nc l i e n t 就是大家常用的浏览器,这类软件的特色在于软件的 功能完全存在于服务器端,客户端完全不需要进行任何安装与部署的工作,因此 其具备有容易部署、容易管理与更新、与执行环境不会依附于客户端环境等优点。 然而t h i nc l i e n t 存在着一些先天上的限制,如必须要在网络的环境才能够执行 软件的功能、和f a tc l i e n t 比较的使用者接口相对而言限制众多、以及由于架 构因素导致开发上的困难。 s m a r tc l i e n t 可以充分的运用网络和w e bs e r v i c e s 存取各种外部系统的资 源,这一点和浏览器这类的t h i nc l i e n t 完全需要依赖网络资源的软件非常类 似。s m a r tc l i e n t 和常见的桌上型软件相同,都能使用本机计算机的所有资源, 充分发挥客户端计算机的运算能力。因此可以说s m a r tc l i e n t 是结合了t h i n c l i e n t 和f a tc l i e n t 的优点,整合过后的一种全新软件模式。 还有,新开发的应用软件,教会用户使用是一件十分麻烦的事,浪费大量的 人力物力在用户的培训上:现在用户对o f f i c e 使用都非常熟悉,如果假借o f f i c e 的使用环境作为应用系统的用户使用环境,就可以大大降低培训成本,并且对用 户非常有吸引力,市场前景十分看好。 另外,各个企业内部以前的各种各样的o f f i c e 文档的管理,可以很方便的转 换成智能文档加以管理,比重新使用新系统来初始化数据要容易得多,这可以大 大降低系统的实施成本。 电子科技大学硕士学位论文 1 2 主要研究内容和创新点 w o r d2 0 0 3 对x m l 的支持,使之能够处理以x m l 格式储存的w o r d 文档。 这种x m l 格式称为w o r d p r o c e s s i n g m l ,也就是w o r d m l 。w o r d m l 格式的w o r d 文档实际上是按照w o r d m ls c h e m a 定义的结构将d o c 二进制文件中的所有信息 存储在x m l 中。x m l 标记语言的优点是作为一种数据交换标准。如果在外部应用 中加入对w o r d m l 的支持,生成的数据遵循w o r d m l 结构,那这些数据就能用 w o r d2 0 0 3 进行处理。这样,w o r d m l 就成了外部应用与w o r d 进行交互操作的 桥梁,任何遵循w o r d m l 的结构的x m l 文档,都可以再通过w o r d2 0 0 3 打开、 编辑、存储。 本文就是通过研究h t m l 文档和w o r d m l 文档格式,将h t m l 文档转换成显 示效果无差别的w o r d m l 文档,在一定程度上实现h t m l 文档和w o r d 文档的相 互转换。具体转换流程见图1 1 。 图0 - 1h t m l 文档与w o r d 文档转换功能图 论文的主要内容为: 1 h t m l 文档到w o r d 文档的转换。 解析h t m l 文档,在内存中生成h t m l 文档的d o m 结构; 将生成的d o m 结构转换成内存中的可转换成w o r d m l 数据的数据结 第一章引言 构; 将得到的数据结构转换成w o r d m l 文挡以及进而转换成w o r d 文档; 2 w o r d 文档到x m l 文档的转换。 将w o r d 文档转换成w o r d m l 文档; 解析w o r d m l ,分析标记的树形结构及其含义; 利用x s l t 和x p a t h 将w o r d m l 转换生成新的x m l 或h t m l 文件; 3 简单的相互转换的应用示例。 解析新生成的x m l 文件,利用a d o n e t 将数据以x m l 片段的形式 存进数据库: 从数据库中提取出x m l 数据,解析x m l 片段: 将从x m l 片段中提取出的有用数据及其格式写到w o r d 文档中去。 本文的主要创新点在: 研究了h t m l 文档和w o r d m l 文档格式,提出了一种将h t m l 文档解析转换 成w o r d m l 文档再到w o r d 文档的方法,利用w o r d 2 0 0 3 支持x m l 来构建其他应 用。 当前w e b 应用中,对w o r d 文档的编辑处理大多数都是通过在浏览器中嵌入 一个a c t i v e x 控件。调用本地w o r d 的c o m 对象来完成。这种方法受浏览器类型, 客户端应用程序等方面制约,并不能非常完美的解决文档编辑的问题。 将w o r d m l 引入到当前的w e b 应用中,通过h t m l 文本编辑器来呈现和编 辑文档,在后台加入h t m l 文本与w o r d 文档的相互转换功能,便可以实现w o r d 文档编辑。这样就从另一个新的方面来解决目前所有w e b 应用中处理w o r d 文档 的弱点。 电子科技大学硕士学位论文 第二章项目综述 随着互联网的普及,b i s 架构的程序得到了很好的支持,但是对于不断出现 的新的需求,依旧有心无力,许多事情依旧需要回归到c s 架构,于是就有人提 出了“回归胖客户端”的论调,我们不去论证讨论谁是谁非,但是有一点可以肯定, 一种新的模式正在渐渐颠覆经过多年发展建立起来的b ,s 模式。 面对当前b s 架构的种种问题,软件业提出了一些新的架构作为解决方案。 未来的应用在技术架构在c s 、1 3 s 发展历程之后,经过深刻的反思,摈弃了各 个阶段不同软件架构的缺点,汲取它们的优点,既具有丰富表现力又整合开发、 应用和维护需要的客户端,智能客户端正是在这基础上发展起来的。在未来的几 年内,智能客户端将成为应用开发的主流架构。 2 1s m a r tc l i e n t 智能客户端是一个连接i n t e m e t 的设备,允许用户的本地应用程序通过w e b 服务和服务器端应用程序进行交互。它既有胖客户端应用程序的运算能力强等特 点,又吸收瘦客户端应用程序的易于部署和可管理的优点。例如,运行文字处理 程序( 比如o f f i c ew o r d ) 的智能客户端可以通过网络和远程数据库交互,从数据 库获取文档处理需要使用的数据;运行w i n d o w sm o b i l e 的智能手机可以从网络 上获取相关图书的信息,可以获取天气预报等等。 智能客户端具有下列部分或者全部特征: 灵活充分使用客户端资源。这里包含客户端的硬件资源和软件资源,可能是 利用客户端的c p u 计算能力,也可能是利用其存储能力,还可能是利用客户端 的资源提供更加友好的用户交互界面。 1 智能集成网络资源服务。通常而言,智能客户端是整个应用系统的一个 部分,大部分的商务逻辑还是在服务器端实现,那么智能客户端就必须尽 可能利用通过网络可以获取的资源和服务,不限于提供分别的应用程序, 而是整合在分布式商业应用环境中的一个组成部分。 2 强大的离线能力。它可以保证在明确脱机,使用低带宽或高延迟网络, 或者连接时断时续的情况下继续高效地工作。 3 易于部署和安装。通过一个集中的服务器,智能客户端通过网络可以非 常容易地实现部署和更新。这是和传统胖客户端程序最大的不同之处,智 第- - 章璜目综述 能客户端应用程序可以在其运行时或位于后台时对自身进行自动更新。 4 终端设备的多样化。智能客户端应用程序能够运行在许多具有网络连接 能力的设备之上,包括台式机、工作站、笔记本、p d a 、智能手机等等, 支持多种语言,并能够通过分布在不同平台上的w e bs e r v i c e s 实现跨平 台应用。 这些都是智能客户端应用程序的优点,在融合了胖客户端和客户端的优势之 外,还引入了智能网络连接和数据管理的功能。由于智能客户端应用程序涵盖各 个领域,这些程序在设计和实现上的差异比较大,这里既与应用的要求有关,也 和运行的设备有关。从最终运行平台来划分,大致可以分为如下三类: 1 w i n d o w s 智能客户端程序。通过n e tf r a m e w o r k1 1 ,w i n d o w s 智能 客户端应用程序极大的发展了原先的胖客户端应用程序架构,并且在原来 的基础之上,提供了完整的智能客户端特性,m i c r o s o f to u t l o o k 就是这 种应用的典型案例。 。 2 o f f i c e 智能客户端应用程序。从0 币c e2 0 0 3 开始,已经不仅仅是一个文 档数据的静态,通过内置的x m l 支持和w e bs e r v i c e s 的访问能力,在 企业应用领域,0 仟i c es y s t e m 成为信息工作者最有效的工作平台,同时 也成为智能客户端应用程序的运行平台。用户可以在不离开o f n c e 的情 况下访问企业数据,可以根据文档提供的标记扩展操作企业业务。o f f i c e 智能客户端应用程序核心的技术是智能文档 3 移动智能客户端应用程序。自从微软将p o c k e tp c 和s m a r tp h o n e 整合 在统一的平台w i n d o w sm o b i l e ”下之后,基于w i n d o w sm o b i l e 的应用也 越来越多,与此同时v i s u a l s t u d i o n e t 对于移动开发也提供了强有力的 支持,通过n e tc o m p a c tf r a m e w o r k 和越来越多的模拟器,基于移动 的智能客户端应用程序开发已不再是难题了。 2 2s m a r td o c u m e n t o f f i c ex p 当中引入了一个新的概念,即s m a r t t a g ( 智能标签) ,单你输入一 个日期,会发现下面多了一条红色的虚线,点击会自动出现一个下拉菜单,这就 是s m a r tt a g 。在o f f i c e2 0 0 3 中,由于对x m l 的支持,智能标签得到了增强, 在此基础上提出了一个s m a r td o c u m e n t ( 智能文档) 的概念,它可以直接在文 档当中与后台的业务处理系统打交道。 电子科技大学硕士学位论文 智能文档是使用编程的方法定义了用户可以进行的操作以及可对用户进行帮 助的文档。利用智能文档,可以在普通文档中嵌入一些高度交互的应用,在原有 文档的基础上提供了更加强大的交互功能;业务类型主要以w o r d 或者e x c e l 文 档作为载体,智能文档让w o r d 和e x c e l 变得更加聪明,能够直接与业务系统打 交道,而不是另外编写一套应用,让它具备排版、打印、数据表计算等的功能。 在w o r d e x c e l2 0 0 3 版本的智能文档中,引入了一个“任务窗格”,所有的智 能操作均在此处完成,从而将业务 逻辑与文档版式互不影响,只是在 业务层建立起联系。智能文档通过 x m ls c h e m a 联系交互,具体做法 是给文档增加一个x m l 架构,根 据鼠标所在不同的x m le l e m e n t , 使任务窗格产生相应的操作及显 示,而且这种改变是联动的。见图 图2 1 s m a r t d o c u m e n t 架构图 2 1 。 在安全性方面,依托于n e t 内建的安全性策略,智能文档也得到了很大的增 强,所有的智能文档在执行操作前,均会通过n e t 策略进行设置,从而杜绝了 安全隐患。 在部署和更新方面,智能文档是基于文档来进行部署的,在内网中部署,我 们可以把智能文档的架构及处理程序放置在一个网络共享位置、w e bs e r v e r 或 者其它内网成员均可以访问的地方。如果是外网,我们可以制作成m s i 安装包, 让客户直接下载安装。 任何一种技术,都不可能成为万能的,符合以下特点的项目,可以考虑使用 智能文档: 使用人员计算机操作水平不是特别高,但对于w o r d 以及e x c e l 文件操作 经验特别丰富: 以w o r c l e x c e l 文档为中心,大部分的应用视图均可以以w o r d e x c e l 作 为展示; 对于一些w o r d e x c e l 本身的特性非常依赖,比如排版、打印、复杂的 e x c e l 的公式计算等。 例如,o a 工作流就非常适合于使用智能文档来进行搭建,办公系统本身处理 的文档大部分都是w o r d 及e x c e l 文档,而且其操作人员对于其它系统都有一种 6 第二章项目综述 本性上的抵触情绪。再者,这种应用一般对文档格式要求特别高,比如,甚至会 增加一些模拟的公章,或者手写签名,这些在w o r d 、e x c e l 当中很好实现,但自 己编程非常困难。目前国内还没有这样的应用商业软件。 2 3s m a r tc l i e n t 与o f f i c es y s t e m 整合方案 运用m i c r o s o f to f f i c es y s t e m ,客户端应用程序可以成为企业信息管理流程 中的一个环节,智能客户端作为企业信息体系结构的有机组成部分集成到企业的 业务逻辑中并通过使用w e b 服务来处理数据。通过在m i c r o s o f to f f i c e s y s t e m 中使用x m l ,可以将数据与文档、演示文稿或电子表格的其他内容分开, 甚至可以保存到数据库中,其他应用程序也可以重复使用信息工作者创建的内容。 另外,由于m i c r o s o f to f f i c as y s t e m 中的应用程序数据可以在多个应用程序中 通过相同的客户定义的x m l 架构进行描述,所以,开发人员可以更容易地将这 些数据集成到企业的智能客户端解决方案中,见图2 - 2 。 x m 也w e b 中间系统 s e r v i c e s 和后端 x 讥 i 肼 w i n d o w s w s d l i i s u d d i s o ls c i y c l r 图2 - 2s m a r tc l i e n t 与o f f i c es y s t e m 整合方案 微软提供的v s t o ( v i s u a ls t u d i o n e tt o o l sf o ro 仟i c e ) 为w o r d 和e x c e l 提供了托管代码扩展的对象模型访问入口。利用v s t o ,开发人员能够构建出功 能强大的o f f i c e 智能客户端应用解决方案,它不仅提供了访问w o r d 和e x c e l 的 全部功能,并且能够利用n e tf r a m e w o r k 的全部特性诸如w i n d o w sf o r m s ,从 而可以更加容易地提供丰富和高度响应的用户交互环境。v s t o 本质上来说是提 供了代码隐藏的文档来组成应用解决方案,从而能够利用。宿主”应用程序提供的 各种功能。使用v i s u a lb a s i c n e t 或v i s u a lc 撑,创建在公共语言运行库控制下 执行的程序集。 目前v s t o 提供了w o r d ,e x c e l 的模板供开发人员使用,由于使用n e t f r a m e w o r k 的组件,因此开发方式和w nf o r m 、w e bf o r m 大同小异,我们可 以直接v s n e t 使用n e t 所提供的对象和方法,也能直接在v s t o 中撰写 7 电子科技大学硕士学位论文 和呼叫w e bs e r v i c e s ,透过a d o n e t 呼叫数据库等等。使用v s t o 开发的 0 f f i c e 后端程序代码会被n e t 所管理,因此其安全性也会在整个n e t f r a m e w o r k 的控管之中。 在2 0 0 4 5 美国的t e c h e d 大会,微软提出了一套i b f ( i n f o r m a t i o nb r i d g e f r a m e w o r k ,信息桥框架) ,i b f 是一组软件组件、工具和指引信息,协助开发人 员建立方案来连接m i c r o s o f to f f i c e 应用程序与w e b 服务。进而降低 m i c r o s o f to f f i c e 型的信息整合方案的开发成本,以及增加这些方案的弹性、管理 能力、安全性和扩充性。 m i c r o s o f to f f i c es y s t e m 为智能客户端解决方案提供了许多新技术。智能客 户端是一种充分利用w e b 服务所提供的信息的应用程序。建立在m i c r o s o f t o f f i c es y s t e m 程序之上的智能解决方案可以动态访问w e b 服务,实现数据的 分析、共享和处理。这样,即可创建灵活且可自定义的应用程序并及时更新信息, 不仅可以联机使用,也可以脱机使用。 第三章项目分析 第三章项目分析 本文研究中的核心内容是两个方面,见图i - 1 :一是h t m l 文档的解析以及 h t m ld o m 结构,再转换为w o r d m l 文档,最后将其转换成w o r d 文档:另一方 面是研究如何从w o r d m l 中提取数据,生成新的x m l 文件,进行存取。 3 1 平台的选择 为了摆脱开发环境的约束,将精力集中于整个系统的核心即w o r d m l 文档到 其他x m l 文件的转换的研究上,而不是需要另外花时间去熟悉一个开发环境,也 不能将时间花在代码编写完毕后的诸如内存泄漏之类的调试上,平台的选择定在 了提供丰富的类库以及提供垃圾回收功能的c # 语言以及n e t 平台之上。毫无疑 问,由于微软为n e t 平台提供了更高效更便捷的集成开发环境以及更丰富的方便 使用的类库,m i c r o s o f t 最新发布的v i s u a ls t u d i o n e t2 0 0 5 有着方便的集成开发 环境和功能丰富的n e tf r a m e w o r k 类库,借此可以极大的提高开发效率。另外 其中包含的v i s u a ls t u d i ot o o l sf o r0 仟i c e 包括新的v i s u a ls t u d i o 项目,可以快捷 的创建w o r d 文档、w o r d 模板、e x c e l 工作簿e x c e l 模板的后台代码。它为我们 开发o f f i c e 应用程序提供了极大的便利。 v i s u a ls t u d i o n e t2 0 0 5 虽然发布不久,但微软v i s u a ls t u d i o 的开发环境已经 有相当的历史了,所以很容易快速掌握。所以选择v i s u a ls t u d i o n e t 2 0 0 5 作为开 发平台。 3 2 设计到的相关技术 应用研究将涉及到以下几个方面的技术。 1 编译技术,即通过编译原理的方法构建一个h t m l 文档的解析器,将 h t m l 文档解析成d o m 结构。 2 x m l 技术和d o m ( 文档对象模型) 模型,x m l 文档对象模型( d o m ) 是x m l 文档的内存中的表示形式。d o m 使您能够以编程方式读取、处理和修改 x m l 文档。 3 x s l t 和x p a t h 语言,即通过使用x p a t h ( x m l 路径语言) 从x m l 文件中 查找相应的信息,使用x s l t 从收集到的信息创建结果树。 4 a d o n e t 技术,a d o n e t 是n e tf r a m e w o r k 中一组提供数据库访问服 9 电子科技大学硕士学位论文 务的类。它提供对s q l s e r v e r 、o l ed b 等数据源一致的访问接口。 5 n e tf r a m e w o r k 类库,n e t f r a m e w o r k 的s y s t e m x m l 和 s y s t e m x m l x p a t h 命名空间中有x m l 操作的相关类集,利用它们可以 方便的对x m l 数据进行种种操作。 6 v i s u a l s t u d i o t o o l s f o r o f f i c e ,在传统的。俪c e 项目开发中,主要使用的 是m i c r o s o f tv i s u a lb a s i cf o r a p p l i c a t i o n s ( 、,b a ) ,v b a 使用与o f f i c e 应 用程序紧密集成的非托管代码。而新的v i s u a ls t u d i o2 0 0 5t o o l sf o rt h e o 仟i c es y s t e m 项目中的托管代码扩展则可利用n e tf r a m e w o r k2 0 和v i s u a ls t u d i o 设计工具。 v i s u a ls t u d i ot o o l sf o ro f n c e 提供两种主要的解决方案项目。o f f i c ew o r d 2 0 0 3 和o f f i c ee x c e l2 0 0 3 项目可用于生成文档级别的解决方案,其中w o r d 文 档或e x c e l 工作簿会附加一个托管代码程序集。o 怖c eo u t l o o k2 0 0 3 项目可用于 生成应用程序级别的解决方案,其中有一个托管代码程序集以o u t l o o k 中的外接 程序的形式运行。我们这里只使用w o r d 的解决方案。使用v i s u a ls t u d i ot o o l sf o r o f f i c e 创建的w o r d 解决方案的最基本形式包含两个文件:一个w o r d 文档,一 个程序集( v i s u a ls t u d i o 将其编译成一个d i | 文件) 。程序集被链接到文档,但 与文档存储在不同位置。带有链接的托管代码程序集的文档被称为具有托管代码 扩展。w o r d 包含一种称为v i s u a ls t u d i ot o o l sf o ro 怖c e 加载程序的加载机制。 打开包含托管代码扩展的w o r d 文档时,w o r d 和e x c e l 中的v i s u a ls t u d i o t o o l sf o ro 仟i c e 加载程序启动公共语言运行库( c l r ) 并加载程序集。 第四章h t m l 文档到w o r d 文档的转换 第四章h t m l 文档到w o r d 文档的转换 4 1h t m l 文档解析器 4 1 1h t m l 文档结构分析 一个典型的符合h t m ls p e c i f i c a t i o n 4 0 3 - 5 】的h t m l 文档片断如下: h t m ld o c u m e n t h e l l ow o r l d ! 它有三部分构成:h t m l 版本信息、文档头部、文档体部分。每个部分开始 前或开始后可以出现w h i t es p a c e 字符( 空格,回车换行,制表符或者注释) 。h t m l 文档的文档头部份允许出现s c r i p t ,s t y l e ,m e t a ,l i n k ,o b j e c t ,t i t l e 等元素,而文档体部分则允许出现h t m l 文档所支持的绝大部分元素。由于h t m l 文档并非严格的x m l 文档格式,每个元素标签不一定都有结束标签,甚至有的 标签被禁止使用结束标签。将最外围的h t m l 元素作为数据结构的根节点,那么 它的直接子节点就 是h e a d 元素和 b o d y 元素。而 h e a d 元素下面则 是s c r l t 元素, 0 b j e c t 元素, u n k 元素, s t y l e元素 m e r a 元素等,而 b o d y 元素的子节 图4 - 1h t m l 文档d o m 结构 l l 电子科技大学硕士学位论文 点就是文档所支持的所有元素。这就是h t m l 文档的d o m 结构。如图4 - 1 所示: 这种结构与x m l 文档结构有相似之处以x m l 数据片断为例。 c a r s o n 3 1 。9 5 0 5 0 1 2 0 0 1 m s p r e s s w a 该x m l 文档被加载到内存后,其数据组织形式如图4 2 所示: 图4 - 2 x m l 文档片断d o m 结构 在上述文档结构中,图中的每个椭圆表示一个节点。节点对象是d o m 树中 的基本对象。节点具有组方法和属性以及基本和定义完善的特性。其中的某些 特性包括: 节点有单个父节点,父节点是节点的上一级节点。唯一没有父节点是文 第四晕h t m l 文档到w o r d 文档的转换 档根,因为它是顶级节点,包含了文档本身和文档片段。大多数节点可 以有多个子节点,子节点是节点的下一级节点。 处于同一级别节点表示的节点是同辈。 节点除具有父子节点,兄弟节点以外,自身还具有属性。属性被视为元素节 点的属性,由名称和值组成。例如下面h t m l 标签: ps t y l e = f o n t - f a m i l y ;c o u r i e rn e w c o u r i e rn e wt e x t 则单词s t y l e 是属性名称,s t y l e 的属性的值是c o u r i e rn e w t e x t 。 与x m l 文档不同,h t m l 节点元素标签是固定的,每个节点所具有的属性 也是固定的。 h t m l 文档在被读入内存构建成d o m 树时,将会创建一系列的节点。然而, 并非所有节点都是同一类型。h t m l 中的元素具有不同于处理指令的规则和语法。 因此,在读取各种数据时,将向每个节点分配一种节点类型。此节点类型确定节 点的特性和功能。 系统为x m l 文档提供一组类库来来操作x m l 文档。通过x m l 和h t m l 文 档d o m 结构相似性,我们可以参考系统为处理x m l 文档所定义的数据结构来设 计处理h t m l 文档所需要的数据结构。在处理h t m l 文档时,h t m l 文档的解析 器是这个部分的核心,需要什么样的数据结构来保持h t m l 文档在内存中信息, 和h t m l 文档解析器所完成的工作密不可分。 4 1 2h t m l 文档解析器的构建 h t m l 文档的d o m 结构与x m l 文档结构相似,参考x m l 文档的数据结构 来设计h t m l 文档的数据结构。h t m l 文档的所有元素节点类型包括:文档节点 类型( 根节点也就是 节点) ,注释类型节点,元素节点( 所有可识别的 h t m l 元素) 以及文本节点。 纵观h t m l 文档的所有元素节点类型,不外乎只有文档节点类型( 根节点也就 是 节点) ,注释类型节点,元素节点( 所有可识别的h t m l 元素) 以及文本 节点。可以定义出h t m l 节点类型枚举数据类型。 而对于元素节点,其中又有不同存在形式,比如c d a t a 节点,空节点( 比如 i m g 元素或m e t a 元素) ,因此对于元素节点,需要定义一个变量来标识该元素 1 3 电子科技大学硕士学位论文 节点的属性,是c d a t a 元素,空元素,自封闭元素。表4 1 列出了h t m l 元素 所具有的元素属性。 表4 1 主要h t m l 标签属性 元素 c d 芦汀a e m p t y c i o s e d 元素 c d 芮f a e m p tc i o s e d y s c r i p t yw b ry s t y l e y b g s o u n d y b a s e y s p a c e r y l i n ky k e y g e n y m e t aya r e a y h ry

温馨提示

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

评论

0/150

提交评论