`
zybing
  • 浏览: 457021 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【xml】深入认识XPath 2.0

xml 
阅读更多

来源:
http://www.searchsoa.com.cn/showcontent.aspx?aid=4031

 

在2007年1月23日W3C批准的很多新的推荐标准中,你会发现崭新的XPath版本——即2.0版本——值得关注。这篇正式名称为TR/xpath20/XML Path Language (XPath) 2.0的文档总结出了所谓的XML中的三位一体,即XPath 2.0、XQuery 1.0和XSLT 2.0,它们都在最近被更新。用推荐标准中的原话说:“XPath 2.0是一种表达式语言,允许按照XQuery/XPath Data Model(XDM)中定义的模型对数值的处理。这种数据模型提供了对XML文档和整型、字符串及布尔型等原子数据类型的数据的树状表示,同时还提供序列类型变量,这种序列类型变量可能同时包含对XML文档中节点的引用和原子类型的数据。XPath表达式的结果可能是输入文档中的节点选集,或者式原子类型数据,或者更一般,任何数据模型允许的序列类型变量。”

  用更简单的术语来表述,这就意味着XQuery和XPath可以结合起来让XML用户定位和查询XML文档,同时对这些文档的树状表示进行遍历以便进行系统级的端到端处理。XQuery负责查询,而XPath负责遍历。XPath表达式提供了一种方法来定位任何XML文档的树状表示中的某一个、一些或者所有的节点。

  XPath 1.0版本和2.0版本中的区别在于2.0版本中加入了更丰富的数据类型,同时获得了访问类型信息的能力,这些类型信息是XML Schema中用于证实XML文档合法性的。事实上,严格来说XPath 1.0是XPath 2.0的子集,后者的80%来源于前者。剩下的20%是最让人感兴趣的,它包括了下面的材料和机制:

  XPath和XQuery经常被视为同一个整体的两个部分,因此你必须理解从XPath 2.0的需求方面来理解XPath 2.0,也需要从XML Query language的需求方面来理解它。

  XQuery相关的一些添加物包括查询包装器(query wrapper),它处理名字空间定义、模式导入和功能定义,还包括元素的构造器。因为XSLT 2.0是XML三位一体中的另一方,但是它并不需要这些功能(它有自己的一套),这一部分并不属于XQuery和XSLT之间的共同交集。

  模式的支持意味着XPath 2.0支持XML 模式中所有的原始类型(这包含19种简单的类型(比如日期和时间)、URI和其他的复杂类型,比如数字、字符和其他的原子类型)。各种处理和构造XML模式中数据类型的相关的功能都出现在XPath 2.0版本中,这些在“XQuery 1.0和XPath 2.0功能和操作符”中有介绍。

  上面提到的XDM文档中对XPath 2.0表达式能够产生的数据类型有完整的描述。从较高的层次来说,我们只需注意这些表达式可以产生简单类型的数据或者由节点和简单类型数据组成的序列类型变量(在前面的摘要中谈到)。

  序列类型是XPath中的焦点,而序列可以通过Evan Lenz在他为XML.com写的文章“What's New in XPath 2.0”中提到的一些规则更好的理解:

  1. 任何东西都是序列:这是因为XPath 2.0所有的表达式都返回序列。

  2. 序列很浅:序列之间不会发生嵌套,如果你试图在序列中嵌套序列,当然在句法上可以接受,不过你得到的是一个“膨胀的”序列,子序列和包含它的序列仍然是依次排列的。

  3. 序列是有序的:XPath 2.0清楚的理解和表示序列中的次序,可以保持或者创造任何你指明的顺序作为结果。在XPath 2.0中,序列取代了1.0中所谓的节点集(node-sets)。

  Xpath加入了一些重要的关键字包括序列操作符,比如for、条件表达式、定量修饰符(quantifiers)和集合操作(集合的交、差和并)。同样还有一个except操作符,它允许一项操作应用于一个序列中除了特定的成员之外的其他所有成员。你也会发现很多类型映射和强制转换(coercion)的关键字。

  我必须同意Lenz对XPath 2.0的断言,尽管变化的比例很小,XPath 2.0是对XPath 1.0的修订和扩充。它提供了很多强大的功能,并且XML内容程序员会觉得这些功能实用有趣。

 

分享到:
评论

相关推荐

    XPath 2.0 程序员参考

    本书全面介绍了 XPath 2.0 的语法、功能及应用实例,非常适合希望深入掌握 XPath 2.0 的程序员阅读。 - **作者简介**:Michael Kay 是一位著名的计算机科学家,专注于 XML 技术的研究与发展。他是 XPath 规范的主要...

    使用 XML XPath 2.0 入门

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

    谷歌浏览器XPath2.0插件

    XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取节点,比如元素、属性和文本等。XPath 2.0是XPath的第二个主要版本,增加了更多的功能和优化。 在没有XPath Helper的...

    XSLT 2.0 and XPath 2.0.PDF

    XSLT 2.0 and XPath 2.0.PDF XSLT 2.0 and XPath 2.0.PDF

    XML Path Language (XPath) 2.0标准.pdf

    ### XML Path Language (XPath) 2.0标准 #### 概述 XML Path Language (XPath) 2.0 是一种用于处理符合 [XQuery/XPath Data Model (XDM)] 定义的数据模型值的表达式语言。该数据模型提供了一种表示 XML 文档树结构...

    xpath 测试工具2.0

    总的来说,XPath 2.0是XML处理中的强大语言,而“XPath测试工具2.0”则为开发者提供了便捷的测试和调试环境,以优化XPath查询并提升XML数据的处理效率。学习和熟练掌握XPath 2.0及其相关的测试工具,对于任何需要...

    Wrox.XSLT.2.0.and.XPath.2.0.Programmers.Reference.4th.Edition.May.2008.rar

    这本书是针对那些想要深入理解和掌握XSLT 2.0和XPath 2.0这两种强大的XML处理技术的程序员所编写的。XSLT(可扩展样式表语言转换)和XPath(XML路径语言)是XML生态系统中的关键组件,用于数据提取、转换和查询。 ...

    xpath-help-2.0.2

    总之,XPath 2.0作为XML处理的重要工具,其强大的功能和灵活性使得它在前端开发、XML数据处理等领域有着广泛的应用。熟悉并掌握XPath 2.0的特性,能为处理结构化数据提供极大的便利。通过"xpath_help_2.0.2"这样的...

    xpath2.js:xpath.js-JavaScript中的开源XPath 2.0实现(与DOM无关)

    特征全面的语言支持通过自定义DOMAdapter使用XPath 2.0语言查询任意树结构自定义排序规则支持(使用 ) 自定义功能支持(使用 ) 变量注入(使用 )安装npm install xpath2.js用法提供了简单的API实现lib/index.js供...

    MSXML: XPATH

    总结来说,XPath是XML处理的关键工具,而XPath 2.0则是在XPath 1.0的基础上进行了诸多改进,增强了对XML Schema的支持,提升了易用性和功能,以满足现代XML处理的需要。理解并掌握XPath 2.0对于XML开发者来说,意味...

    w3c.XPath2.0.chm

    自制的w3c网站的教程和手册

    从XML文件抽出XPath - C and C++

    在这个主题中,我们将深入探讨如何在C和C++中使用XPath来解析XML文件。 首先,让我们了解C++中处理XML文件的基本步骤。C++中常用的库有TinyXML和pugixml,这两个库都提供了解析XML文档的功能。在提供的文件`get_...

    基于Xpath的xml文件查询和更新

    在本主题中,我们将深入探讨基于Xpath的XML文件查询和更新。 **Xpath基本概念** 1. **节点类型**:Xpath中的节点包括元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令...

    xpath.js:xpath.js-JavaScript中的开源XPath 2.0实现(与DOM无关)

    ------------------------------------XPath.js - Pure JavaScript implementation of XPath 2.0 parser and evaluator------------------------------------Copyright (c) 2012 Sergey IlinskyDual licensed under ...

    XML解析包xPath

    xPath.jar,XML解析包。XPath是获取xml中数据的一种方式,其简单语法易用。

    xml 2.0学习指南

    在“XML 2.0学习指南”中,我们将会深入探讨这一重要的互联网标准,它在数据交换、文档结构化以及应用程序间的数据共享等方面发挥着核心作用。 XML的2.0版本,虽然在实际应用中并未像HTML那样有明确的版本迭代,但...

    Beginning.XSLT.and.XPath_Transforming.XML.Documents.and.Data源码

    在《XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer)》这本书中,读者可以深入学习XSLT 2.0和XPath 2.0的新特性,比如支持函数库的扩展、流式处理以及更强大的类型系统。XSLT 2.0引入了...

    第七章 XML显示之XPath.pdf

    第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf第七章 XML显示之XPath.pdf

    用于 ElementTree 和 lxml 的 XPath 1.0/2.0 解析器和选择器

    综上所述,"用于 ElementTree 和 lxml 的 XPath 1.0/2.0 解析器和选择器"涉及的是XML处理中的核心技术,包括XPath的基本概念、语法、函数、性能优化以及在Python中的应用实践。通过深入理解和熟练掌握这些知识点,...

    xpath读取XML节点

    XPath是XML文档中查找信息的语言,它允许我们高效地定位到XML文档中的特定节点,如元素、属性或文本。在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath...

Global site tag (gtag.js) - Google Analytics