C#发现之旅第十讲 文档对象模型

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为“C#发现之旅 ”的技术讲座。考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用。目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程。在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力。

课程说明

本 课程专门讲述文档对象模型的概念,理论性比较强,需要仔细思考,而且没有演示程序,本课 程是C#发现之旅系列课程的终结篇,不过不排除我今后推出C#发现之旅续集的可能性。

文档对象模型定义

文档对象模型英文名为 Document Object Model , 简称 DOM,它是一种比较重要的软件设计模式,不是编程技巧。可以这么说,平生不认DOM,便称 英雄也枉然,大家应当多多了解它的能力。

文档对象模型是面向对象编程技术的集中 体现,若没有完整的面向对象编程思想,是不可能理解和开发文档对象模型,若开发者能开 发出文档对象模型,那就说明他/她比较完整的理解和掌握了面向对象编程思想。

W3C 国际组织对文档对象模型是这样定义的(摘自 http://www.w3.org/DOM/ )

The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page. This is an overview of DOM-related materials here at W3C and around the web.

以 我个人的英文水平翻译如下

文档对象模型是一种平台或语言中立的接口,程序或脚本 能利用它来访问和更新结构化的文档。这些文档可以被进一步的处理,处理结果可以组成一 个有效页面。这是W3C对web上的文档对象模型原理的一般看法。

文档

我们来 逐步理解这个定义。首先什么是文档。文档就是以一种结构组织在一起的数据包。比如MS Word 文档就是一种文档,它包含了很多字符,图片,段落数据,并使用特定的组织结构保存 在一个二进制文件中。 比如HTML文档,它也包含了文字,图片,链接,表单数据,并可以按 照公开的HTML语法组成一种层次结构保存在一个字符串或文本文件中。

结构化文档

其次,什么是结构化的文档,很多文档它的内容组织呈现一种层次化的结构。即它的 内容抽象化可以组成一种树状结构,比如HTML文档,XML文档。

对于普通的文本文档 ,从开发者看来,它就是一个字符串,其中各个字符或子字符串之间是没有相互关系的。此 时普通文本文档就不是结构化的文档,若将某种支持层次结构的语法分析强加到这个文本文 档时,则该文本文档就成了一个层次化的文档。

HTML文档若没有进行HTML语法解释, 则它就是一个平淡无奇的纯文本文档,就是一个普通的字符串,若将HTML语法强加到这个字 符串,则这个纯文本文档立即成为具有相当复杂度的结构化文档。同样的道理,XML文件, SQL语句等纯文本文档,在它没有解释前是一个普通的字符串,解释之后就成为大有用途的 XMLDOM,SQLDOM。

编程接口

DOM是一种接口或平台,对于软件开发者来说,这 种所谓的接口或平台就是编程接口(API),API有很多种,有直接调用函数的接口方式,比 如传统Win32API函数,还有一种是暴露可编程对象,编程对象有公开的属性方法或事件,比 如COM接口或.NET类库接口。还有基于WEB的WebService的编程接口。一般而言,对于DOM,编 程接口就表现为可编程对象的编程接口,就是DOM向外发布若干个可编程对象,别的应用程序 或者脚本语言可以调用这些可编程对象的公开成员。

DOM的一个重要特性就是应用程 序或者脚本程序能利用它来访问和更新结构化文档。这个意思是说,DOM向外提供若干个可编 程对象,这些对象内部使用种种手段,保证它和结构化文档中的某个部分保持对应关系,特 别是对象的属性和文档片断的属性保持映射关系。而外部程序获得可编程对象的属性,经过 DOM内部的映射关系,实际上就等价于获得某个文档片断的某个属性,外部程序修改可编程对 象的属性,经过内部的映射关系,最终导致某个文档片断的属性的修改。因此DOM是应用软件 和结构化文档之间的代理,应用软件使用DOM透视出文档的内容,也通过DOM“隔山打牛 ”的方式修改文档内容。

时间: 2024-11-27 06:09:38

C#发现之旅第十讲 文档对象模型的相关文章

C#发现之旅第七讲 C#图形开发高级篇

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本系列课程配套

理解document.all[]:DOM文档对象模型

文章简介:浅谈document.all与WEB标准. 1.DOM WEB标准现在可真是热门中热门,不过下面讨论的是一个不符合标准的document.all[].DOM--DOCUMENT OBJECT MODEL文档对象模型,提供了访问文档对象的方法.例如文档中有一个table,你要改变它的背景颜色,那就可以在javascript中用document.all[]访问这个TABLE.但DOM也有所不同,因为浏览器厂商之间的竞争,各浏览器厂商都开发了自己的私有DOM,只能在自己的浏览器上正确运行,d

文档对象模型DOM通俗讲解_基础知识

在开始之前先说一点,DOM是非常容易理解的,但是大家说的太官方,让人很是难于理解,我们就用非常简单的语言翻译一遍.加深对DOM的理解,从而对它有一个全面的认识. 什么是DOM DOM的全称是Document Object Model,即文档对象模型,它允许脚本控制Web页面.窗口和文档. 如果没有DOM,JavaScript将是另外一种脚本语言:而有了DOM,它将成为制作动态页面的强有力工具.DOM不是JavaScript语言的一部分,而是内置在浏览器中的一个应用程序接口.当然,我们可以简单的理

C#发现之旅第十四讲 基于动态编译的VB.NET脚本引擎(下)

主窗体中还定义了诸如Function_New,Function_Open,Function_Save等等函数用于实现 对文档的新建.打开文件和保存文件等处理.而工具条上的按钮就是调用这些功能函数.定 义这些功能函数的代码如下 /// <summary> /// 执行新建文档 /// </summary> public bool Function_New() { if (QuerySave()) { txtEditor.Text = ""; txtEditor.M

C#发现之旅第四讲 Windows图形开发入门

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本次课程说明

C#发现之旅第八讲 ASP.NET图形开发带超链接的饼图

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本系列课程配套

C#发现之旅第六讲 C#图形开发中级篇

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本文配套源码,

深入浅出jackrabbit之十五 文档提取优化2.docx

/** *author:ahuaxuan *2009-10-22 */ 在上一篇文章中,我们讲到为什么要优化jackrabbit中的文档提取,同时也分析了进程模型和线程模型在分布式文档提取中的优劣. 在本文中,ahuaxuan将会介绍分布式文档提取的架构模型,以及它在整个非结构化数据库中的地位. 第二部分ahuaxuan将介绍几个用来提取文本的工具,然后将这些工具用在分布式文档提取中,以减轻jackrabbit的负担, 从这个角度看,本文是对上文的补充,这样从原因,到解决方案,以及所用到的技术工

亚信安全发现勒索软件新变种 Word文档成为导火索

5月13日消息,小心!看到陌生的Word文档,你可别急着打开,因为你的重要文件可能因此被非法加密.近日,亚信安全就截获了一个通过Word文档传播的Locky勒索软件变种,这个名叫"W2KM_LOCKY.B"的勒索软件会随着Word文档的打开而自动运行,加密用户电脑中的重要文件,进而勒索巨额赎金.对此,亚信安全建议用户需要格外关注不明邮件.链接.文件,利用安全软件策略封锁勒索软件入侵,或者更新亚信安全产品,有效防范此类勒索软件及其变种攻击. 亚信安全研究人员发现,此次截获的勒索软件变种&