`

XPath集合——XPath语法详解系列(三)

    博客分类:
  • XML
阅读更多
  • XPath 集合

XPath 查询返回的集合在定义的范围内保留文档顺序 、层次结构和标识。也就是说,按照文档顺序返回元素集合,没有重复的元素 。因为根据定义,属性不排序 ,所以,为特定元素返回的属性不进行明确地排序。

 

具有特定标记名的所有元素的集合使用标记名本身表示。限定方法可以通过使用句点和正斜杠 (./ ) 表明元素是从当前上下文中选择,但是默认情况下将使用当前上下文,不必明确说明

表达式 引用

./first-name

所有 <first-name> 元素。注意,此表达式等效于后面的表达式。

first-name

所有 <first-name> 元素。

为集合编制索引

使用 XPath 表达式可以很容易在节点集中查询特定的节点。只需为索引序号加上方括号。序号从 1 开始(第一个元素是编号 1)。

方括号字符 ([] ) 的优先级高于斜杠字符(/// )。有关更多信息,请参见运算符和特殊字符 。

示例:

表达式 引用

author[1]

第一个 <author> 元素。

author[first-name][3]

具有 <first-name> 子元素的第三个 <author> 元素。

注意,索引相对于筛选的节点集。下表显示如何选择特定的 <x><y> 元素: 

x/y[2]

每个 <x> 中的第二个 <y> ,可选择多个。

(x/y)[2]

<x> <y> 组成的整个集合元素集的第三个 <y> ,有且仅有一个。

x[2]/y[2]

第二个 <x> 中的第二个 <y> ,也有且仅有一个。

<x>

  <y/>

  <y/>

</x>

<x>

  <y/>

  <y/>

</x>

<x>

  <y/>

  <y/>

</x>

<x>

  <y/>

  <y/>

</x>

<x>

  <y/>

  <y/>

</x>

<x>

  <y/>

  <y/>

</x>

 

上面的示例简单地引用使用暗示默认值(例如 child:: 轴)的 XPath 集合。对于此轴,子节点集合按照前向文档顺序编制索引。

对于其他轴(例如 ancestor:: ),在 XPath 表达式中需明确使用轴名。对于此轴,上级集合按照后向文档顺序编制索引。从上表中考虑此示例:

x/y[1]

此表达式等效于以下表达式:

x/child::y[1]

两个表达式均意味着“对每个 <x> 元素选择第一个名为 <y> 的子元素”。

下面的示例使用了相同的语法。

x/y/ancestor::x[1]

此示例意味着“对每个 <y> 元素选择第一个名为 <x> 的祖先元素(按照后向文档顺序)”。语法相同但是顺序相反。

查找集合中的最后一个元素

last() 函数对集合中的最后一个元素返回 True。注意,last 相对于父节点。

示例:

表达式 引用

book[last()]

最后一个 <book> 元素。

book/author[last()]

每个 <book> 元素中的最后一个 <author> 元素。

(book/author)[last()]

<book> 元素中整个 <author> 元素集的最后一个 <author> 元素。

分组

为了清楚起见,或正常的优先级不足以表达某个运算,可以使用括号为集合运算符分组。分组运 算符可以在任何筛选表达式(谓词)中使用,例如 author[(degree or award)and publication] 。也可以在顶级步长表达式中使用,例如 (book|magazine)(author/degree | book/award) 。不能应用于低级步长表达式。例如,author/(degree | award) 无效。但另外 (book | magazine)/price是可以的,因为分组括号用在了第一级步长。

示例:

表达式 引用

(book/author)

属于当前上下文节点中任何 <book> 元素的子元素的所有 <author> 元素。

author[(degree or award) and publication]

至少包含一个 <degree><award> 元素以及至少包含一个 <publication> 元素的所有 <author> 元素。

分享到:
评论

相关推荐

    xpath语法详解

    XPath的语法基础: 1. **节点类型**:XPath定义了七种基本的节点类型,包括元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令(processing-instruction)、注释(comment)以及...

    Python3 xml.etree.ElementTree支持的XPath语法详解

    通过这些基本语法,我们可以编写XPath表达式来精确地查找XML文档中的特定部分。例如,在给定的XML文档中,我们可以找到每个国家的名称: ```python root = ET.fromstring(xml_string) for country in root.findall...

    XPath基础用法详解

    XPath语法包括路径表达式、轴表达式、节点测试、谓语表达式等。路径表达式可以结合轴、节点测试和谓语来选取特定节点。谓语通常用于过滤节点集,例如`[条件]`。 7. **运算符** XPath支持多种运算符,包括比较...

    XPath语法详解xml开发必备

    下面我们将详细探讨XPath语法及其在XML开发中的应用。 1. **XPath的基本概念** - **节点**:XML文档由一系列节点构成,如元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令...

    C#操作xml之xpath语法

    ### C#操作XML之XPath语法详解 在C#中,操作XML文档是一项常见的任务,尤其在处理配置文件、数据交换格式或集成不同系统时。为了有效地解析和查询XML数据,XPath成为了一种不可或缺的语言。本文将深入探讨XPath的...

    XPath路径表达式详解

    "XPath路径表达式详解" XPath 是 W3C 的一个标准,旨在在 XML1.0 或 XML1.1 文档节点树中定位节点。XPath 路径表达式是一种表达式语言,返回值可能是节点、节点集合、原子值或节点和原子值的混合等。XPath2.0 是 ...

    xpath语法与函数

    ### XPath语法与函数详解 #### XPath简介 XPath是一种在XML文档中查找信息的语言,它用于在复杂的XML结构中定位特定的元素或属性。XPath对于理解并操作XML文档至关重要,尤其在XSLT转换、XQuery查询及XPointer定位...

    xpath详解总结-很全面.docx

    XPath 详解总结 XPath 是 W3C 的一个标准,主要目的是为了在 XML1.0 或 XML1.1 文档节点树中定位节点所设计。XPath 是一种表达式语言,返回值可能是节点、节点集合、原子值、节点和原子值的混合等。 XPath 路径...

    XPath详解PDF版

    ### XPath详解 #### 一、XPath简介 XPath是一种在XML文档中查找信息的语言。它用于在XML树结构中导航,并且能够返回所匹配节点或节点集。XPath的强大之处在于其简洁性和灵活性,允许用户轻松地从复杂的XML文档中...

    xpath详解总结,很全面[参照].pdf

    XPath 详解总结 XPath 是 W3C 的一个标准,它的主要目的是为了在 XML 文档节点树中定位节点。XPath 有两种版本:XPath1.0 和 XPath2.0。XPath2.0 是 XPath1.0 的超集,支持更加丰富的数据类型,并且保持了对 XPath...

    XPath 简单语法

    ### XPath简单语法详解 #### 一、XPath简介 XPath是一种在XML文档中查找信息的语言,类似于HTML中的CSS选择器或SQL中的查询语句。XPath能够快速定位到XML文档中的某个节点或者一组节点,并且可以用来抽取节点数据...

    Selenium_XPath定位详解

    首先,XPath 是一种在XML文档中查找信息的语言,其语法和功能非常丰富。在Selenium中,XPath可以用来定位页面上的元素,如按钮、链接、输入框等。以下是一些基本的XPath定位方法: 1. **基于标签名**:通过元素的...

    Python爬虫基础之XPath语法与lxml库的用法详解

    主要给大家介绍了关于Python爬虫基础之XPath语法与lxml库用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    xpath应用和说明

    XPath提供了丰富的语法和函数库,能够精确地定位XML文档中的元素和属性,使得数据检索和处理变得高效和灵活。作为W3C(World Wide Web Consortium)的标准,XPath广泛应用于各种XML相关的技术中,如XSLT、XML Schema...

    【爬虫学得好,基础少不了】:XPath语法和lxml模块(详解)

    总的来说,XPath是XML和HTML解析的重要工具,熟练掌握XPath语法和使用方式对于进行数据抓取和处理,尤其是在网络爬虫领域,具有至关重要的作用。通过`lxml`库,我们可以轻松地在Python中利用XPath进行文档的解析和...

    QML语法详解

    ### QML语法详解 #### 一、QML简介 QML(Qt Meta Language)是一种用于构建用户界面的声明性语言,它与JavaScript紧密结合,能够轻松地实现动态效果和复杂的交互逻辑。QML的设计理念旨在简化界面开发过程,使得...

    B06_1_Xpath提取网页数据.md

    ### Xpath提取网页数据知识点详解 #### 一、Xpath简介 Xpath是一种查询语言,主要用于在XML文档中查找信息。它可以轻松地在XML文档中通过元素和属性进行导航。虽然Xpath最初是为了处理XML而设计的,但它同样适用于...

    jsoup的jar包、xpath所有jar包

    **JSoup与XPath详解** JSoup是一个用于Java的开源库,设计目的是为了处理HTML文档,提取和操作数据。它的核心功能在于提供了一种简洁而强大的API,使得开发者能够方便地解析、遍历以及修改HTML文档。JSoup可以理解...

Global site tag (gtag.js) - Google Analytics