日期:2014-04-12  浏览次数:20811 次

什么是XML

   扩展标记言语XML是一种简单的数据存储言语,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。

   XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强无力的数据存储和分析能力,例如:数据索引、排序、查找、相关分歧性等,XML仅仅是展现数据。理想上XML与其他数据表现方式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML异乎寻常。

   XML的简单使其易于在任何使用程序中读写数据,这使XML很快成为数据交换的独一公共言语,虽然不同的使用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

XML的优点

   我们谈到XML长于在不同的使用程序之间交换数据,XML文件也便于构建小的数据库,不久以前,软件都使用INI文件存储配置信息、用户参数以及其他信息,后来微软引入了系统注册表,接作微软通知我们不应该再使用INI文件了,从那时起Visual Basic对INI文件的支持被减弱了。但不幸的是注册表有几个致命的缺点:不是简单的文本文件,难于读写、可能会变得庞大和缓慢、如果注册表不知何故出现问题,将有可能形成系统死机。

   将配置信息放在XML文件中可以避免这些问题,甚至可以将XML文件设置为一个共享文件,这样在不同的计算机上的用户就可以共享数据,这是注册表所不能比拟的。

   在被称为下一代ASP的ASP.NET中可以在WEB页中直接使用XML,你可以使用数据绑定控件直接绑定数据并自动显示。

   当然也可以不选择XML,使用文本文件、注册表、数据库都可以完成XML所能完成的任务,XML只是你在数据存储和恢复的另一种工具而已。

XML语法简介

   XML的语法非常的简单,XML文档由节点组成,使用打开和关闭节点描述标记,在格式上与HTML标记非常类似,它们之间最大的不同是:XML中可以自在定义标记名。比如下面的标记就描述了一个电话号码:

<Phone>987-654-3210</Phone> 

   而且不用声明标记名就可以使用。

   开始和结束标记必须相反,XML是识别大小写的,所以标记的大小写也必须相反。比如上面的例子中以<Phone>标记开始就必须以</Phone>标记结束,而不能是</phone>或</PHONE>

   节点标记中可以包含属性,比如下面的代码中Phone节点包含属性Type,其值为WorkFax:

<Phone Type="WorkFax">987-654-3210<Phone> 

   如果不情愿在节点中包含一个值,那么可以不需求结束标记,可以用在开始标记的后面加一个斜线来结束节点,在下面的例子中,Phone标记的Number属性就存储了一个电话号码,所以就不需求一个结束标记:

<Phone Type="WorkFax" Number="987-654-3210" /> 

   XML文档的结构是一个树形等级结构。文档必须有一个独一的根结点,根节点包含所有其它节点。下面我们举一个较为完整的例子:

<Addresses>
  <Entry Type="Personal">
   <FirstName>Andy</FirstName>
   <LastName>Fickle</LastName>
   <Street>1234 Programmer Place</Street>
   <City>Bugsville</City>
   <State>CO</State>
   <Zip>82379</Zip>
   <Phone Type="Home">354-493-9489</Phone>
  </Entry>
  <Entry Type="Work">
   <FirstName>Betty</FirstName>
   <LastName>Masterson</LastName>
   <Phone Type="Work">937-878-4958</Phone>
   <Phone Type="WorkFax">937-878-4900</Phone>
  </Entry>
  ...
</Addresses> 

   留意类似的节点不需求包含相反的信息,例如第一个Entry节点包含了地址信息和家庭电话号码,第二个Entry节点包含了Work和WorkFax电话号码,而没有包含第一个Entry节点包含的信息。
XML工具

   如前面的例子显示,XML语法是如此的简单以致于你可以在很短的时间作一个XML解析器,侥幸的是你不必这样做,由于XML工具可以运转在各种平台上,包括可以安装了Visual Basic的Windows。

   正是这些L工具而不是XML本身使XML变得更强大和复杂。不同的解析器使你可以某一时辰加载整个XML文档或只加载某个节点,与此相反,XML Writer 可以同时创建一个XML文档和节点。

   DOM解析器使我们能够很方便的加载、复制、排序、修正和存储XML文件,遍历节点获得名称或属性,并给结果排序。虽然他们的功用没有真正的关系数据库强大,但DOM的这些特点仍然非常有用。

   XSD可以定义XML文档的格式,XSL扩展款式单定义了怎样将XML文档转换成其他可以在WEB浏览器中浏览的文件格式,比如HTML文件。

   这些工具实际上比XML本身更复杂,所以所有讲解XML的书籍都花了很大的篇幅解释这些XML工具。但这超出了本文的范围,有兴味的读者可以参考有关材料。

   Visual Basic.Net提供了使用XML、XSL以及其他XML工具的完整工具。但不用等待VB.NET,微软XML核心服务(MSXML)版本4.0提供了从Visual Basic6.0加载和存储XML文档的工具。

   在msdn.microsoft.com/xml/default.asp中下载最新版本的MSXML,并安装在计算机上。在Visual Basic 6.0中使用Microsoft XML V4.0象援用其他对象一样,首先在工程菜单中选择援用菜单项,选择Microsoft V4.0,单击OK,一切完成后就如今就可以在VB使用程序中添加XML对象了。

DOMDocument 类

   文档对象模型(DOM)使用了一系列相应的对象描述了XML文档的等级形状,DOMDocument类是一个描绘XML文档的DOM结构的MSXML类。

   DOMDocument类仅仅提供了很少的几个有用的属性和方法。Load方法载入一个xml文件,loa