XML解决的问题

早期的文本处理格式经常不会区分内容和表示。例如,RTF具有类似于表格和列表的结构化数据编码以及字体和图像编码。HTML也遇到了同样的问题。类似于table标签、tr标签和td标签具有指定宽度和长度属性的元素通常用于对web页面的物理布局产生影响,而不是以列表风格将相关条目分组。

此方法的问题是当需要新的输出格式时,包含在文档中的格式化信息变得毫无用处。更糟的是,最初设计来传送结构化信息的标签只是因为其边界影响会被无用,如使用UL标签时产生缩进。

比较起来,XML则完全基于结构。特定数据元素可被清晰标识并通过文本搜索应用抽取出来。如果一个XML文档需要交付给web浏览器,可使用XSL样式单编程将其转换为HTML。如果文档需要用于一个事务处理系统,可通过XML解析器解析它,该解析器抽取指定域完成事物处理。XML文档可作为一个树型结构加以浏览或将其压缩成关系型数据库表格。只要使用文档的应用知道其编写语言,应用就可以找到并抽取所需数据。

XML解析器

为使用应用中的XML文档,需要对其进行解析。一个XML解释器读取文档并将其分隔称为开始标签、属性、体内容和结束标签。解析器具有应用程序接口,使用户可以不必自己去解释输入流的复杂性而轻松抽取所需元素。存在两种常用的XML解析器模型:1、DOM文档对象模型。2、SAX,XML的简单API。

文档对象模型(DOM)是内存中文档的W3C标准表示法。与文本字符串不同,DOM将文档表示成一个节点树。该树可按任意次序遍历。节点可被增加和删除并且已修改DOM树可被保存为新文档。DOM规范有不同的版本,由级别指定。DOM级别1是核心特性集,提供和访问文档元素的方式。DOM级别2作为W3C推荐产品被批准,增加了对名空间的支持。

«1»