xpath基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Baidu Nhomakorabea
译者 陈宏(Hong CHEN)【hong@hongchen.net?/li>
时间 初次定稿:2003 年 2 月 20 日 (NZT) 最后修改: 2003 年 8 月 5 日 (UTC)
XML 路径语言(XPath) 版本 1.0 万维网协会 (W3C) 建议 1999November16 本版本: http://www.w3.org/TR/1999/REC-xpath-19991116 (其它文件格式: XML [英文] HTML [英文] ) 最新版本: http://www.w3.org/TR/xpath 中文翻译 [简体中文] 以前版本: http://www.w3.org/TR/1999/PR-xpath-19991008 http://www.w3.org/1999/08/WD-xpath-19990813 http://www.w3.org/1999/07/WD-xpath-19990709 http://www.w3.org/TR/1999/WD-xslt-19990421 编者: James Clark <jjc@jclark.com> Steve DeRose, Inso Corp. and Brown University <Steven_DeRose@Brown.edu> Copyright © 1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
附录 A 参考书目 A.1 标准规范参考书目
A.2 其他参考书目 B XML 信息集映射(非标准)
-------------------------------------------------------------------------------1 绪论 XPath 是努力给 XSL 转换[XSLT]和 XPointer [XPointer]的共享功能提供一个共用的句法及语 义的结果。XPath的主要的目是用于对 XML [XML]文档元件寻址。在支持这个主要目的的同时,它 也为字符串,数字和布尔的操作提供了基本手段。XPath 使用简明的、非 XML 句法以便於在 URIs 和 XML 属性值以内使用 XPath,XPath 对 XML 文档的抽象的、逻辑的结构而非它的表面句法进行操作, XPath 的名字源于它在 URL 中用作对 XML 文档的层次的结构进行导航一个路径标志。 除了用做寻址外,XPath 也被设计成以便它有能被用于匹配的一个自然的子集(测试一个节点是否 匹配一个模式);XSLT中描述了 XPath 在这方面的使用。 XPath 将一个 XML 文档建模成为一棵节点树,有不同类型的节点,包括元素节点,属性节点和正文 节点。XPath 定义了一种方法来计算每类的节点的字串值。一些节点的类型也有名字。XPath 充分 支持 XML 命名空间[XML Names]。这样,节点的名字被建模成由一个局城部分和可能为空的命名 空间 URI 组成的对;这被称为扩展名。5 数据模型描述了数据模型详细细节。 XPath的主要语法构件是表达式,一个表达式匹配产生式 Expr,一个表达式被求值评估产出一个对 象,该对象有下列 4 种基本的类型之一: 节点集合(无序的、无重复的节点集合) 布尔(真或假) 数字(一个浮点数字) 字符串(UCS 字符的顺序) 表达式求值发生与上下文有关。 XSLT 和 XPointer 分别地指定了上下文怎样在 XSLT 和 XPointer 使 用 XPath 表达式。上下文组成包括: 一个节点([定义:上下文节点]) 一对非零正整数([定义:上下文位置]和[定义:上下文大小]) 一个变量绑定的集合 一个函数库 表达式范围内的命名空间声明的集合 上下文位置总是小於或等於上下文的大小。 绑定由从变量名到变量值映射组成,一个变量的值是一个对象,它的类型可以是任何表达式的值可 能的类型,并且也可以有这里没指定的另外的类型。 函数库由从函数名到函数的映射组成, 每个函数可接受零个或零个以上的参数并且返回单个的结果。 本文档定义了所有的 XPath 实现必须支持的一个核心函数库(参看4 核心函数库)。对於核心函数 库中的每一个函数,参数和结果有4种基本的类型。XSLT 和 XPointer 通过定义另外的函数来扩展 XPath 的函数;这些函数有些对 4 种基本的类型操作,其它的则对 XSLT 和 XPointer 定义的另外 的数据类型操作。
descendant::para 选择上下文节点的 para 元素子孙 ancestor::div 选择上下文节点的 div 祖先 ancestor-or-self::div 选择上下文节点的 div 祖先,并且,如果上下文节点为 div 元素,则该 上下文节点也被选择 descendant-or-self::para 选择上下文节点中所有的 para 元素子孙,而且,如果上下文节点是一 个 para 元素,则该上下文节点也被选择 self::para 如果上下文节点是一个 para 元素,选择该上下文节点,否则不选择任何东西 child::chapter/descendant::para 选择上下文节点的 chapter 元素孩子的所有的 para 元素子孙 child::*/child::para 选择上下文节点的所有的 para 孙子 / 选择文档根(它总是是文档元素的父) /descendant::para 选择在同一文档中所有的 para 元素作为上下文节点 /descendant::olist/child::item 选择在同一文档中所有的以 olist 为父的 item 元素作为上下 文节点 child::para[position()=1] 选择上下文节点的第一个 para 孩子 child::para[position()=last()] 选择上下文节点的最后一个 para 孩子 child::para[position()=last()-1] 选择上下文节点的倒数第二个 para 孩子 child::para[position()>1] 选择上下文节点中除第一个以外所有的 para 孩子 following-sibling::chapter[position()=1] 选择上下文节点的下一个 chapter 兄弟 preceding-sibling::chapter[position()=1] 选择上下文节点的前一个 chapter 兄弟 /descendant::figure[position()=42] 选择文档中第四十二个 figure 元素 /child::doc/child::chapter[position()=5]/child::section[position()=2] 选择文档元素 doc 的第五个 chapter 的第二个 section child::para[attribute::type='warning"] 选择的上下文节点中有属性 type 且值为 warning 的 para 孩子 child::para[attribute::type='warning'][position()=5] 选择的上下文节点中所有的有属性 type 且值为 warning 的 para 孩子中第五个孩子 child::para[position()=5][attribute::type="warning"] 选择的上下文节点中第五个 para 孩 子,如果该孩子有 type 属性且值为 warning 的话
-------------------------------------------------------------------------------摘要 XPath 是一种用于对 XML 文档的元件寻址的一语言,设计为 XSLT 和 XPointer 使用。 本文档的地位 本文档已由万维网协会 (W3C) 组织成员和其他感兴趣的各方审阅,并已被组织理事批准为万维网协 会 (W3C) 建议。这是一个稳定的文档,可以用作参考材料,也可以作为其他文档的标准参考文献。 W3C 在建议制定过程中的作用是吸引对本规范的注意并促进它的广泛使用。这能增强 Web 的功能和
互操作性。 本规格说明已知的错误列表在 http://www.w3.org/1999/11/REC-xpath-19991116-errata。 对本说明的建议可电邮到 www-xpath-comments@w3.org;存档的建议可供备查。 英文版是唯一的正式版, 本文档的翻译请参见 http://www.w3.org/Style/XSL/translations.html。 现有 W3C 建议和其他技术文档的列表在 http://www.w3.org/TR。 本规格是 XSL 工作组及 XML 链接工作组联合的工作成果,因此也是 XML 式样制定工作(W3C Style activity)和 W3C XML 制定工作(W3C XML Activity)的一部分。 目录 1 绪论 2 地址路径 2.1 地点步进 2.2 轴 2.3 节点测试 2.4 判定词 2.5 缩简句法 3 表达式 3.1 基础 3.2 函数调用 3.3 节点集合 3.4 布尔 3.5 数字 3.6 字符串 3.7 词法结构 4 核心函数库 4.1 节点集合函数 4.2 字符串函数 4.3 布尔函数 4.4 数字函数 5 数据模型 5.1 根节点 5.2 元素节点 5.2.1 唯一 ID 5.3 属性节点 5.4 命名空间节点 5.5 处理指令节点 5.6 注释节点 5.7 正文节点 6 一致性
本页位置: 开放首页 -> 开放 XML -> 标准中译 -> XML 路径语言 -------------------------------------------------------------------------------译文 XML 路径语言(XPath) (版本 1.0) ( http://www.opendl.com/openxml/w3/TR/xpath/xpath-gb.html ) 英文 XML Path Language (http://www.w3.org/TR/xpath) 注意 英文版是唯一的正式版, 其 URL 列在上面。 本文档为中文翻译版,译者虽力求精准,但其中可能仍有错误和不妥之处,欢迎指正,不胜感激! 著作权声明位於:http://www.w3.org/Consortium/Legal/copyright-documents.html
命名空间声明由从前缀到命名空间 URI 的映射组成。 变量绑定、函数库及命名空间声明对於求表达式或其子表达式的值总是一样的;上下文节点、上下 文位置及大小对於求表达式或其子表达式的值则是不同的。有多种表达式可改变上下文节点,而只 有判定词能改变上下文位置和上下文大小(参看2.4 判定词)。在描述一种表达式的求值时,必须 总是明确地说明是上下文节点、上下文位置、还是上下文的大小对子表达式的求值产生变化,如果 没有关于上下文节点、上下文位置、上下文的大小的说明,那么对那种表达式的子表达式的求值就 保持不变。 XPath 表达式经常出现在 XML 属性里,在本节中说明的语法适用于在 XML 1.0 规范化以后的属性 值。因此,如果语法要使用字符 <,而该字符却绝对不能以 < 出现在任何的 XML 资料中,这样必 须遵循 XML 1.0 的规则,也就是应键入成 &lt;。在表达式以内,文字的字符串由单引号或双引号 来界定,它也用于界定 XML 属性。为了避免 XML 处理器将表达式中的引号解释成属性界定符,引 号可以键入成字符参考( &quot; 或 &apos; )。做为选择,如果 XML 属性使用双引号,表达式则 可以使用单引号,反之亦然。 一种重要的表达式类型是地点路径,地址路径选择与上下文节点相关的节点集合。对是地址路径的 表达式求值的结果是节点集合,该节点集合包含地点路径选择的节点。地址路径能递归地包含表达 式,这些表达式用来过滤节点集合。地址路径与此同时LocationPath 相匹配。 在下列语法里,非终结的 QName 和 NCName 定义在[XML Names]中,而S定义在[XML]中。语法 与[XML]一样使用 EBNF 符号表示法(除了总是以大写字母起头的语法符号)。 分析表达式时,首先将字符字符串分解成分割段(token),然后再分析所得分割段结果的序列。空 白符能自由地在分割段之间被使用。分段化(tokenization)过程在3.7 词法结构中描述。 2 地址路径 尽管地址路径不是本语言中最完整的语法的构件(地址路径 LocationPath 是 Expr 的一个特殊的 例子),他们却是最重要的构件,因此,将首先进行描述。 每一条地址路径都能使用直观但是相当冗长的句法表示,同时也有很多缩简句法可用以简明地表示 常见路径。这节将解释使用未经缩写的句法的地址路径的语义。然后将通过显示缩简的句法怎扩展 成未经缩写的句法来解释缩简句法(看2.5 缩简句法)。 这是使用未经缩写的句法的地址路径的一些例子: child::para 选择上下文节点的 para 元素孩子 child::* 选择上下文节点的所有元素孩子 child::text() 选择上下文节点的所有的正文节点 child::node() 选择上下文节点的所有的孩子,而不论它们是什么节点类型 attribute::name 选择上下文节点的 name 属性 attribute::* 选择上下文节点的所有的属性
相关文档
最新文档