在查询XML文档的深层次节点时,采用文档对象模型(Document Object Model,DOM)的编程方法需要大量的编码,处理起来颇为不便。一旦改动文档的结构,需要相应改动节点中导航的DOM代码,这类维护工具无疑是枯燥和低效的。为了减轻查询、维护文档代码的工作量,提供一个简洁有效地查询XML文档的途径,万维网联合会 提出了XML路径语言(XML Path Lanager,XPath)规范。
Xpath并不是只代替DOM查询、定位文档中的节点。在XSLT、XML Schema以及其它需要查询处理XML文档的场合,Xpath都得到广泛的应用。目前,Xpath技术已经成为畅通查询XML文档数据的必备条件之一。
基本知识
XML路径语言以”路径”的方式查询XML文档,其形式一般为”节点/子节点/第二级子节点”的形式,从外到里匹配了XML文档中的节点。
一、 XPath体现了XML的层次结构和线性结构
XML文档的元素嵌套结构类似于文件系统的目录-文件层次结构,下面实例演示了使用XML文档,表达文件系统目录层次结构。
<?xml version="1.0" encoding="GB2312"?> <文件系统 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="complexType.xsd" 名称="系统盘"> <目录 创建时间="2005-04-28T09:30:47" 名称="Windows"> <目录 创建时间="2005-04-28T09:30:47" 名称="system32"> <文件 创建时间="2003-03-27T22:02:32" 名称="cmd.exe"/> <文件 创建时间="2003-03-27T22:02:32" 名称="regedit.exe"/> </目录> <文件 创建时间="2003-03-27T22:02:32" 名称="winhelp.exe"/> </目录> <目录 创建时间="2005-04-28T09:30:47" 名称="Program Files"> <目录 创建时间="2001-12-17T09:30:47.0Z" 名称="Internet Explorer"> <文件 创建时间="2003-03-27T22:02:32" 名称="iexplore.exe"/> </目录> <目录 创建时间="2001-12-17T09:30:47.0Z" 名称="Outlook Express"> <文件 创建时间="2003-03-27T22:02:32" 名称="msimn.exe"/> <文件 创建时间="2003-03-27T22:02:32" 名称="wab.exe"/> <文件 创建时间="2003-03-27T22:02:32" 名称="wabmig.exe"/> </目录> </目录> <目录 创建时间="2005-04-28T09:30:47" 名称="RECYCLER"/> <文件 创建时间="2005-04-28T09:30:47" 名称="boot.ini"/> <文件 创建时间="2003-03-27T22:02:32" 名称="bootfont.bin"/> <文件 创建时间="2003-03-27T22:02:32" 名称="ntldr"/> </文件系统>
用图-1表示XML文档结构和文件系统机构
在下一节中,将根据此图介绍XPath的层次结构和线性结构以及XPath的基本概念。