使用 XML: XPath 2.0 入门

豆豆网   技术应用频道   2007年10月25日  【字号: 收藏本文

关键字: XPath

内容摘要:XPath 2.0 是两个重要推荐标准的基础,这两个标准按照 W3C 规程已进入最后阶段:XSLT 2.0 和 XQuery。这次重大修改的目的是大大提高该语言的能力和效率。本文中,Benoît Marchal 介绍使用新的数据模型可以方便地编写更复杂的请求。

  对旧标准的一次重大更新

  虽然还是候选推荐标准,但 XPath 2.0 即将得到正式批准。这是 1999 年以来对 XPath 推荐标准的第一次修订,市场对此抱有很大期望,事实上一些工具已经开始实现最新的草案。这些修改是根本性的,我预料到时候人们也许会把 XPath 1.0 看作是 XPath 2.0 的草案。

  XPath 2.0 推荐标准是 XSLT 2.0 和 XQuery 1.0 的基础。这两种语言都以 XPath 作为核心查询引擎,并增加了一些语句来格式化查询结果(请参阅 参考资料)。

  XPath 1.0 和 XPath 2.0 之间的区别包括:

  基于序列而非节点集的新的数据模型

  绑定变量的能力,以前的变量绑定在宿主语言(XSLT)中

  完全支持 XML Schema 数据类型

  很多新功能,包括正则表达式、日期/时间和字符串操作

  注释,虽然不是一个重要的特性,但是在调试查询时很方便:测试时可以注释掉路径的一部分

  本文主要讨论新的数据模型,具体来说即序列的使用,因为对表达能力来说这是最根本的变化。

  XPath 2.0 中的序列

  XPath 2.0 将一切都作为序列来处理。序列 是不同类型的项组成的有序集合。项可以是 XML 文档中的节点或者原子值。原子值可以是 XML Schema 推荐标准中定义的任何类型,包括复杂类型。在 XPath 中声明一个序列,只需要把项用逗号分开,整个序列用括号括起来:

  (2, 'declencheur', 5.10)

  实际上,基本上所有有效的 XPath 1.0 请求在 XPath 2.0 中仍然是有效的。换句话说,XPath 2.0 保留了熟悉的 XPath 1.0 语法:路径仍然由正斜杠(/)分开的定位步组成,如:

  /po:PurchaseOrder/po:ProductList/po:Name。

  但是,在 XPath 2.0 中定位步表示的是序列(重复一次,这些项可以是 XML 节点)中的项而不是树中的节点(XPath 1.0 数据模型)。

来源:ibm    作者:Benoît Marchal    责编:豆豆技术应用

正在加载评论...