URL的分析与跟踪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
URL的分析与跟踪
摘要
关键词:URL分析,URL 跟踪,正则表达式,XML
目录
目录................................................................................................... 错误!未定义书签。
1绪论................................................................................................ 错误!未定义书签。
1.1 本文的目的和意义 ................................................................ 错误!未定义书签。
1.2 国内外相关研究概述............................................................. 错误!未定义书签。
1.3 本文研究内容和采用的方法.................................................. 错误!未定义书签。
1.4 本文所取得的成果及意义的概述 ........................................... 错误!未定义书签。
2 相关知识介绍................................................................................. 错误!未定义书签。
2.1 .NET简介[2] ........................................................................... 错误!未定义书签。
2.2 VisualC#.NET简介................................................................ 错误!未定义书签。
2.2.1 VisualC#.NET语言的产生背景..................................... 错误!未定义书签。
2.2.2 VisualC#.NET特点 ...................................................... 错误!未定义书签。
2.3 正则表达式........................................................................... 错误!未定义书签。
2.4 URL[5].................................................................................... 错误!未定义书签。
2.4 XML相关知识[6].................................................................... 错误!未定义书签。
2.4.1 XML基础 .................................................................... 错误!未定义书签。
2.4.2 XML 文件处理 ............................................................ 错误!未定义书签。
3 系统需求分析................................................................................. 错误!未定义书签。
3.1 项目的背景、现状 ................................................................ 错误!未定义书签。
3.2 需求概述 .............................................................................. 错误!未定义书签。
3.2.1 功能需求..................................................................... 错误!未定义书签。
3.2.2 非功能需求 ................................................................. 错误!未定义书签。
3.3 系统数据流图(或用例图、类图).................................... 错误!未定义书签。
4 系统设计 ........................................................................................ 错误!未定义书签。
4.1 设计的要求和目标 ................................................................ 错误!未定义书签。
4.1.1 系统设计的原则 .......................................................... 错误!未定义书签。
4.1.2 系统设计的目标 .......................................................... 错误!未定义书签。
4.2 系统体系结构设计 ............................................................ 错误!未定义书签。
4.3 模块设计 .............................................................................. 错误!未定义书签。
4.3.1 响应用户输入模块....................................................... 错误!未定义书签。
4.3.2 响应用户输入模块流程图 ............................................ 错误!未定义书签。
4.3.3 URL分析模块.............................................................. 错误!未定义书签。
4.3.4 URL分析模块流程图 ................................................... 错误!未定义书签。
4.3.5 URL地址树模块 .......................................................... 错误!未定义书签。
4.3.6 URL跟踪模块.............................................................. 错误!未定义书签。
4.3.7 URL跟踪模块流程图 ................................................... 错误!未定义书签。
4.4 数据库设计........................................................................... 错误!未定义书签。
4.5 用户界面设计....................................................................... 错误!未定义书签。
4.6 核心算法设计....................................................................... 错误!未定义书签。
4.6.1 保存树中的内容到文件................................................ 错误!未定义书签。
4.6.2 从文件中读取内容到书中 ............................................ 错误!未定义书签。
5 系统实现与应用.............................................................................. 错误!未定义书签。
5.1 系统实现的软硬件平台 ......................................................... 错误!未定义书签。
5.2 系统实现之关键代码分析.................................................. 错误!未定义书签。
5.2.1 保存树中的内容到XML文件 ................................. 错误!未定义书签。
5.2.2 读取XML的文件,显示到树中.............................. 错误!未定义书签。
5.3 系统实现之截图.................................................................... 错误!未定义书签。
5.3.1 系统界面图 ................................................................. 错误!未定义书签。
5.3.2 软件功能简介.............................................................. 错误!未定义书签。
5.3.3 与我联系..................................................................... 错误!未定义书签。
5.3.4 是否退出应用程序....................................................... 错误!未定义书签。
5.3.5 输入提示..................................................................... 错误!未定义书签。
5.3.6 对有效URL的分析...................................................... 错误!未定义书签。
5.3.7 对URL的跟踪 ............................................................ 错误!未定义书签。
5.3.8 对html文件的分析...................................................... 错误!未定义书签。
5.3.9 保存为.XML文件........................................................ 错误!未定义书签。
5.3.10 成功保存为.XML文件 ............................................... 错误!未定义书签。
5.3.11 插入节点 ................................................................... 错误!未定义书签。
5.3.12 成功插入节点............................................................ 错误!未定义书签。
5.3.13 选中节点,以高亮显示 .............................................. 错误!未定义书签。
5.3.14 成功删除所选中的节点 .............................................. 错误!未定义书签。
5.3.15 清空URL树.............................................................. 错误!未定义书签。
5.3.16 读取URL树.............................................................. 错误!未定义书签。
5.3.17 成功读取XML文件................................................... 错误!未定义书签。
5.4 系统应用 .............................................................................. 错误!未定义书签。
6 结论 ............................................................................................... 错误!未定义书签。
致谢................................................................................................... 错误!未定义书签。
参考文献............................................................................................ 错误!未定义书签。
附录................................................................................................... 错误!未定义书签。
1保存Tree View中的内容到指定的XML文件............................. 错误!未定义书签。
2 从指定的XML文件读取内容填充到XML文件........................ 错误!未定义书签。
1绪论
1.1 本文的目的和意义
21世纪是网络时代,网络已经离我们的生活越来越近,网上购物、视频点播、电子邮件等等,都已经成了许多人生活的一部分。
而说起互联网,最容易看见的就是一张一张的网页了,大大小小的网站举不胜举,特别是在web2.0新起之后,互联网越来越平民化,不需要太多技术知识,甚至只需简单点几下鼠标,就可以通过bl og,空间等形式在互联网上建立属于自己的网页。
而且,这些网页还在以每天几何数级的速度增长着。
那么用户是怎么访问这许许多多的网页的?这些网页又是靠什么联系在一起的呢?
说到网页,最常见的就是W W W(World Wide Web)环球信息网,即万维网。
简而言之,WWW是一个以Intern et为基础的计算机网络,它允许用户在一台计算机通过Intern et存取另一台计算机上的信息。
之所以称其为信息网,是因为它的资源可以互相连接的缘故,全世界目前大概有数万个We b站,每个Web 站都可以通过超链接(Hyper link)与其它Web站连接,任何人都可以设计自己的Home Page,放上Web 站,然后在你的Home Page上面产生链结,与其他人的Home Page 连接,或是连到其他的W eb 站;别人也一样可以连到你的Home Page或是你的W eb 站,整个信息网就这样编织了起来,形成一个巨大的环球信息网。
W WW服务器使用的主要协议是HTTP(Hyper Text Transpo rt Protocol)协议,即超文体传输协议。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。
HTTP协议基于客户/服务器模式,在服务器端,运行Serve r,当接到客户请求时,将客户所请求的对象以htm l(Hyper Text Mark-up Languag e),即超文本标记语言形式发送给用户;在客户端,用户通过Bro wser浏览器将html文件解析成可视的网页,显示出来。
HTTP使用了统一资源定位器URL(Uniform Resourc e Locator)这一概念。
简单地说,URL就是文档在环球信息网上的"地址"。
URL用于标识Intern et或者与I nterne t相连的主机上的任何可用的数据对象。
通过在浏览器中的地址栏中输入URL,可以获取该URL所指向的h tml文件,而每个html文件中又包含多个URL,这样,就可以通过一个网页跳转到另一个网页。
但是,面对着这数不清的网站,我们如何可以快速找到所需要的网页,了解他们的层次结构,使我们能更加快速,高效的使用In ternet网。
同时,网页中夹杂着恶意链接的情况也越来越多,如何能找出这些恶意的链接,也是让很多人头疼的问题。
而本系统的任务,就是分析出一个h tml文件内所有的URL链接,并对这些URL链接进行跟踪。
这样,我们就能过对整个网站的结构一目了然,同时,方便我们判断哪些是恶意链接,哪些是对我们有用的链接,方便我们能更安全地在Int ernet网中漫游。
1.2 国内外相关研究概述
目前,国内对URL相关研究主要是以下几个方面:
1.基于URL的网页过滤器的设计与实现,通过对Linu x系统内核模块的分析,
设计通过网络包截获、网络包过滤两个步骤进行包过滤的实习。
在设计过程中,探讨并实现了U RL阻挡数模型、上下层通信的技术(上下层大规模数据传输和内核主动发信号给进程的技术)和包的截获技术[7]。
2.基于URL过滤与内容过滤的网络净化模型,在信息时代里,信息爆炸似地
增长着,而为数众多的不良信息充斥其中。
针对这种状况,许多的公司与研究机构都提出了自己的过滤模型。
该模型在运用W CCP协议的前提下,结合了URL过滤和内容过滤这两种方法多网络信息进行过滤,该经了传统的URL过滤算法[8]。
3.基于URL聚类的新型web筛选机制研究,由于传统的筛选方法在执行效率
和准确率上都不能满足网页信息提取的需要,我们提出了一种新的基于领域知识的筛选方法。
这种方法不仅通过网页的内容进行筛选,而且利用网页特点,通过URL聚类的方法进行筛选[9]。
4.面向Web应用的前置URL控制机制研究,针对反向代理应用中存在着的网
页内嵌URL问题,提出了前置URL控制机制,构建了该机制的总体模型,包括URL定向模型、预分析器、HTML/XML解析器、U RL修改模块和COOK I E修改模块各部件。
论述了模型的核心技术——动态脚本的HT ML解析和XSL/XML联合解析,提出了异地代理的解决方案。
在Apache/Linux下实现了该模型原型,对其功能进行了完整测试,包括性能负载测试[10]。
5.针对URL的哈希函数,在Web学习处理的研究中,不少情况下需要对很大
的URL序列进行散列(hashing)操作,本文提出了一个针对URL数据集合的均匀哈希函数,它是ELFha sh函数的变型[11]。
1.3 本文研究内容和采用的方法
考虑到本系统涉及到很多网络方面的技术,而C# 语言中,封装了很多类来支持有关网络系统的开发,因此,本系统将采用C#语言来进行开发。
C#是一种面向对象的、独立于平台的安全语言,它比C++更容易学习,而且比C和C++更能避免被误用。
C#像VB一样具有快速开发能力,像C++一样强大、更像Java一样优美,它就是C#[1]。
面向对象编程(OOP)是一种软件开发方法,它将程序视为一组协同工作的对象。
文【1】指出:面向对象技术代表了一种全新的程序设计思路和观察、表达、处理问题的方法。
与传统的面向过程的开发方法不同,面向对象的程序设计和
问题求解符合人们日常自然的思维习惯,降低、分解问题的难度和复杂度,提
高整个求解过程的可控制性、可监测性和可维护性,从而达到以较小的代价和
较高的效率获得较满意效果的目的。
面向对象技术中所指的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
比如,我们日常所看的
电视机就是一个具有实在功能的实体,在面向对象的程序设计中,电视就可以表达成一个计算机可理解、可操纵、具有一定属性和行为的对象。
C#是唯一没有在设计思路中加入了前辈语言某种特征的新事物,并且它在设计时考虑了多数实际应用的需要。
因此,C#对于开发人员来说比C++等更加简单。
C#是彻底的面向对象的语言,将面向对象提高了另一个层次。
即简单的数据类型都可以被当作对象来处理。
C#是类型安全的(type-safe),这意味着很多事情。
首先,C#是强类型语言,声明变量时一定要指定变量的类型,赋值时如果类型与变量类型不符,编译时将出错。
其次,代码只能访问被授权可以访问的内存位置。
最后,C#是自动管理内存的,不允许使用指针直接操作内存。
C#不允许使用指针是出于类型安全考虑的,但是并不意味着绝对不能使用指针。
如果有人对指针有所偏好,就可以使用un safe这个关键字来标示某段代码,使其跳过.NET框架的类型安全检查,在这段代码中就可以使用指针直接操纵内存了。
这让C#难以置信地强大。
由此,我们对C#语言的信心更加坚定,尽管.NET框架没有限定使用某种特定的语言,但C#无可置疑是.NET环境下进行开发的首选语言。
1.4 本文所取得的成果及意义的概述
本文所取得的成果之一是本系统实现了以下的功能:
1.以本地htm文件为输入,分析其中URL地址,得到一棵URL地址树。
2.以URL地址为输入,获取该URL地址所指向的h tm文件,分析其中的URL
地址,得到一棵URL地址树。
3.将URL地址树存入XML文件中。
4.从XML文件中取出URL数据,以树的形式显示给用户,用户可对该URL树进
行管理,如保存树,清空数,删除树中节点,插入树中节点,等等。
5.对URL进行跟踪,当用户鼠标双击U RL树上的URL叶子节点时,取得该叶
子节点存放的URL,以该URL做为输入,调用功能2),得到一棵新的U RL 树,分析得到的URL地址做为子节点重新插入原URL树中。
本系统的主要任务,就是分析出一个h tml文件内所有的URL链接,并对这些URL链接进行跟踪。
这样,我们就能过对整个网站的结构一目了然,同时,方便我们判断哪些是恶意链接,哪些是对我们有用的链接,方便我们能更安全地在Int ernet网中漫游,即对网络冲浪提供便捷。
2 相关知识介绍
本系统主要的开发环境是.NET开发平台,采用与.NET平台量身定做的C#语言实现代码的编写工作。
在URL数据存储方面,使用XML文件来进行数据的存储。
2.1 .NET简介[2]
.NET技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代I n terne t的可编程结构。
.NET的目的就是将互联网作为新一代操作系统的基础,对互连网的设计思想进行扩展,用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。
用户不需要知道这些文件放在什么地方,只需要发出请求,然后就可以接受处理的结果,后台的复杂处理过程对用户而言是透明的。
.NET的开发平台如图所示。
.NET开发平台包括.NET框架和.NET开发工具组成部分,.NET框架(Framew o r k)是整个开发平台的基础,包括公共语言运行库和框架类库,.NET开发工具包括Visu al Studio.NET集成开发环境和.NET编程语言。
其中,Visual Studio.NET 集成开发环境用来开发和测试应用程序。
.NET编程语言包括Visu al Basic、Visual C++和新的Visu al C#等用来创建运行在公共语言运行库(CommonLangu ag e Run,CLR)上的应用程序。
.NET框架的组成如图所示。
.NET框架包括公共语言运行库和.NET类库。
公共语言运行库是.NET的基础,用户可以将公共语言运行库看作是一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程管理),而且还强制实施严格的类型安全检查,以确保代码运行的安全性和可靠性。
事实上,代码管理的概念是运行库的基本原则。
以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。
.NET框架的另一个主要部件是类库,它是一个综合性的面向对象的可重用类型集合,用户使用它不仅可以开发传统的命令行或图形用户界面(G UI)应用程序,而且还可以开发A 所提供的创新应用程序(如Web窗体和X ML Web服务)。
l S t u d i o .N E T
图 .NET 开发平台
图 .NET 框架
2.2 Visual C#.NET 简介
2.2.1 Visual C#.NET 语言的产生背景
1995年,Sun 公司正式推出面向对象的开发语言J ava ,并提出跨平台、跨语言的个概念,之后,Java 就逐渐成为企业级应用系统开发的首选工具。
为支持Jav a 语言,微软开发出基于J ava 语言的编译器V i sual J++,并在很短的时间里由1.1版本升级到6.0版本,其中Visu al J++ 6.0版集成在V i sual Stu dio 6.0 中。
该语言开发的程序不但在J a v a 虚拟机上(Java Virtua l Machin e ,JVM )的运行速度大大加快,而且增加了许多新特性,同时还支持调用W indo w s API ,这些特性使得V i sual J++成为强有力的W i ndow s 应用开发平台,并成为业界公认的优秀Ja v a 编译器。
由于Visual J++主要应用在Wi ndows平台的系统开发中,因此Sun公司认为Visu al J++违法了Java的许可协议,违反了Java开发平台的中立性,并对微软提出了诉讼,这使得微软处于极为被动的局面。
为了改变这种局面,微软决定推出其进军互联网领域的.NET计划,C#就是该计划中所要开发的一门重要的开发语言。
.NET计划将是微软今后几年发展的战略核心,其内容非常庞大。
它的技术开发平台是Visu al Studio.NET,而C#作为Visual J++的替代语言,也集成在该平台中。
C#语言的开发成功,对微软未来的发展有着非常重要的意义。
微软在2000年6月份举行的“职业开发人员技术大会”上正式发布了C#语言。
微软公司对C#的定义是:“C#是一种类型安全的、现代的、简单的、由C和C++衍生出来的面向对象的编程语言,它是牢牢根基于C和C++语言之上的,并可立即被C和C++开发人员所熟悉。
C#的目的就是综合V isual Basic的高生产率和C++的行动力。
”
2.2.2 Visual C#.NET特点
与C和C++相比,C#具有以下特点:
1)语法更简单;
2)保留了C++的强大功能;
3)快速应用开发功能;
4)语言的自由性;
5)强大的Web服务器控件;
6)支持跨平台;
7)与XML相融合。
2.3 正则表达式
该系统的核心是与html文件的内容中的关键字进行匹配,来找出该htm l文件中所有的URL链接。
字符串的匹配有很多方法,在C#中,字符串的匹配有一个很强大而又简单的方式,就是利用正则表达式的模式匹配。
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。
WarrenMcCullo ch 和WalterPitts 这两位神经生理学家研究出一种数学方式来描述这些神经网络。
1956 年, 一位叫Stephen Kleene的数学家在McCullo ch 和Pitts 早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。
随后,发现可以将这一工作应用于使用Ken Thompson的计算搜索算法的一些早期研究,Ken Thompso n是Unix 的主要发明人。
正则表达式的第一个实用应用程序就是Unix 中的qed 编辑器。
如他们所说,剩下的就是众所周知的历史了。
从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。
在典型的搜索和替换操作中,必须提供要查找的确切文字。
这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此
在搜索动态文本时就有困难了,甚至是不可能的。
使用正则表达式,就可以:
1).测试字符串的某个模式。
例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。
这称为数据有效性验证。
2).替换文本。
可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
3).根据模式匹配从字符串中提取一个子字符串。
可以用来在文本或输入字段中查找特定文字。
一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。
该模式描述在查找文字主体时待匹配的一个或多个字符串。
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配[3]。
当前,所有的文本编辑器都有一些搜索的功能。
通常可以打开一个对话框,在其中的一个文本框中键入要定位的字符串,如果还要同时进行替换操作,可以键入一个替换字符串。
这种搜索最简单的方式,是可以请求用M i crosoft 替换文档中所有的MS,这类问题很容易用strin g类的string.Replace()方法来解决。
但如果需要在文档中识别某个重复的,该怎么办?编写一个例程,从一个stri ng类中选择重复的字是比较复杂的。
此时使用语言就很合适[4]。
2.4 URL[5]
在公路上驾驶汽车如果看不懂交通标志,我们将无法到达我们所希望去的地方。
同样我们在In ternet海洋中遨游时,如果不了解什么是统一资源定位器(URL),我们也不能在I nterne t海洋中寻找资源获取信息以及用E-mail通信,可见统一资源定位器对上网用户来说是多么重要,一个完整的URL应由下面几个部分组成:资源类型+主机名+子目录(可选)+文件名(可选)。
下面举例来说明统一资源定位器的组成,例如下面的URL:http://yc2sti /dongqia n g/index.html,表面上看去,有这么多的字符排成一行,确实很难记忆,但我们如果把它分解开来,就发现它并不复杂。
HTTP为该U RL的第一项,用来定义所要查找资源的类型。
资源的类型有以下几种:
1)HTTP 定义访问Int ernet中的WWW页面;
2)HTTPS 定义访问具有安全性WWW服务器上的页面;
3)FTP 定义远程传送主机上的文件或目录;
4)FILE 定义访问本地主机上的文件或目录;
5)TELNET定义去登陆一台远程主机;
6)NEWS 定义访问一个U SENET的讨论组;
7)SNEWS 定义访问具有安全性NEWS服务器上的讨论组;
8)ABOUT 定义程序的信息和一些特殊的资源。
URL的第二项就是我们想访问的Inte rnet站点名,也叫Intern et主机名,这
里的ycs就是江苏省盐城市信息网络中心的一台小型机的名字,该计算机上存储有我们的WW W页面。
有了这个计算机名字,Internet通过域名系统,找到与这台计算机的英文名相对应的数字地址,也叫IP地址,就能够在全世界范围找到这台计算机。
计算机的名字是由用小数点分隔开的一连串字符组成的,中间不能有空格,且计算机名字前必须加上“//”这一符合。
在计算机名字后面,紧跟着的就是U RL的第三项,它是用来定义信息保存在这台计算机的什么地方,也就是放在哪一个子目录中,每一个子目录前面有一个斜杠。
当然子目录是可选的,并不是所有URL都要用到子目录,在这里,我们所要找的信息位于“”下的“dongqia n g”子目录中。
URL的最后一项定义了我们要想访问的某个具体信息的文件名,我们这里的文件名是index.html。
2.4 XML相关知识[6]
2.4.1 XML基础
当前,因特网只是文本和图片的访问媒体,并没有智能搜索、数据交换、
自适应表现和个人化的标准。
因特网需要超出设置信息访问和显示标准的限制,因特网需要设置信息理解准备标准(尽管数据的通用方式),以便软件能够更好地搜索、移动、显示和处理上下文中隐藏的信息。
当前的HTML并不表示数据。
尽管HTML提供了显示的丰富的工具,但HTML并没有提供任何基于标准的管理数据的方式,于是XML应运而生。
可扩展标记语言(XML)是一种提供数据描述格式的标记语言。
该语言使跨越多个平台进行更准确的内容声明和获得更有意义的搜索结果变得更加容易。
此外,XML实现了表示与数据的分离。
例如,在HTML中使用标记语言在告诉浏览器将数据显示为粗体或斜体;而在XML中,标记只用于描述数据,例如城市名、湿度和大气压。
在XML中,使用样式表(如可扩展样式表语言(XSL)和层叠式样表(CSS))在浏览器中显示数据。
XML使数据与表示及处理分离出来,通过应用不同的样式表和应用程序,能够根据需要显示和处理数据。
XML是为在W e b上传送而进行优化了的SGML的子集。
它是由WWW联合会(W3C)定义的。
该标准化确保了结构化数据的统一性和相对于应用或供应商的独立性。
XML是Vis u al Studio.NET和.NET框架的很多功能的核心。
它大大丰富了HTML的描述功能,可以描述非常复杂的Web页面,如复杂的数学表达式,化学方程式等。
简单地讲,XML的功能可以分为四个方面:结构化、自描述、可扩展和浏览器自适应。
下面分别介绍这几种特性:
1)结构化
XML是一种极端标准化的语言规范。
同SGML一样,XML文件利用了一个DTD(documen t type definition,文件类型定义)规范,DTD规范是一个用来定义X ML文件的语法、句法和数据结构的标准。
2)自描述
尽管并不要求X ML文件必须是可以自描述的(只要求是结构化的),但带
有自描述可以增强Web的检索功能。
这些描述被称作“元数据”(metedat a),它们可以包括有关一个文件的信息如安全(谁可以阅读它)、阅读范围、文件内容、文件是用什么语言写的、作者是谁以及关于这个文件的其他任何信息。
3)可扩展
可扩展性一直是HTML的弱点,由于HTML被定义成一套固定的标签集,人们不可能增加新的标签而又不破坏HTML标准。
由于现在Web页面需要表达的内容越来越丰富、越来越复杂,标准HTML规定的标签远远不能满足页面设计的需要。
为了解决标准H T ML 目前的限制并且考虑到未来W e b页面发展的需要,就要求新的页面标签具有可扩展性:能够创建新的标签。
在XML中,标签是由DTD定义的,正是它来定义在要给文件的机构中允许与什么样的应用(如风格条、浏览器、检索数据库、打印引擎等)。
4)浏览器自适应
如果一个XML文件是结构化的,那么这样的一个文件应该能够适应各种不同的浏览模式。
X ML提供的软件功能还能够对用户输入的数据进行动态的计算和显示。
2.4.2 XML 文件处理
由于XML的易共享性等优点,所以XML技术越来越多地应用于企业级数据处理等领域,如应用于企业生产报表。
新产品分布和年度数据汇总等。
XML逐步成为从中间层传送数据到桌面的工具,由于XML的数据可以通过中间层代理与多层后台数据库源集成,目前绝大多数数据库制造商已全面支持XML技术,提供了各种强大的功能来处理XML数据。
C#在XML编程方面具有强大的开发效率,为处理XML数据提供了许多相关类,如处理stre am的类有X m lRead er和Xml Writer;DOM类的有X m lNode,XmlDocu ment和X m lElem ent等;Xpath的类有XmlNavigato r;XSLT的类有XmlTr a n sform。