XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。
下面的例子中红色字体表示使用对应语法获取的元素(或属性)。
1、斜线/从根节点选择
,基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径,获取满足该路径的所有节点:
选择根元素 语法:/AAA
<AAA
>
<BBB
/>
<CCC
/>
<BBB
/>
<DDD
>
<BBB
/>
</DDD
>
<CCC
>
<DDD
>
<BBB
/>
<BBB
/>
</DDD
>
</CCC
>
</AAA
>
选择AAA的所有CCC子元素 语法:/AAA/CCC
<AAA
>
<BBB
/>
<CCC
/>
<BBB
/>
<DDD
>
<BBB
/>
</DDD
>
<CCC
>
<DDD
>
<BBB
/>
<BBB
/>
</DDD
>
</CCC
>
</AAA
>
2、如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系),//会做全文档扫描
。
选择所有BBB元素 语法://BBB
<AAA
>
<BBB
/>
<CCC
/>
<BBB
/>
<DDD
>
<BBB
/>
</DDD
>
<CCC
>
<DDD
>
<BBB
/>
<BBB
/>
</DDD
>
</CCC
>
</AAA
>
选择所有父元素是DDD的BBB元素 语法://DDD/BBB
<AAA
>
<BBB
/>
<CCC
/>
<BBB
/>
<DDD
>
<BBB
/>
</DDD
>
<CCC
>
<DDD
>
<BBB
/>
<BBB
/>
</DDD
>
</CCC
>
</AAA
>
选择AAA的CCC的所有BBB元素 语法:/AAA/CCC//BBB
<AAA
>
<BBB
/>
<CCC
/>
<BBB
/>
<DDD
>
<BBB
/>
</DDD
>
<CCC
>
<DDD
>
<BBB
/>
<BBB
/>
</DDD
>
</CCC
>
</AAA
>
3、点“.” 选取当前节点。
4、“..”选取当前节点的父节点。
5、”@”选取属性。
选择所有的id属性 语法://@id
注意:这里选取的是属性而不是方法。
<AAA
>
<BBB
id = "b1"
/>
<BBB
id = "b2"
/>
<BBB
name = "bbb"
/>
<BBB
/>
</AAA
>
选择有id属性的BBB元素 语法://BBB[@id] 区别于上面的属性选择
<AAA
>
<BBB
id = "b1"
/>
<BBB
id = "b2"
/>
<BBB
name = "bbb"
/>
<BBB
/>
</AAA
>
选择id属性为“id1”的BBB元素 语法://BBB[@id="b1"]
<AAA
>
<BBB
id = "b1"
/>
<BBB
id = "b2"
/>
<BBB
name = "bbb"
/>
<BBB
/>
</AAA
>
选择有任意属性的BBB元素 语法://BBB[@*]
<AAA
>
<BBB
id = "b1"
/>
<BBB
id = "b2"
/>
<BBB
name = "bbb"
/>
<BBB
/>
</AAA
>
选择不具有任何属性的BBB元素 语法://BBB[not(@*)]
<AAA
>
<BBB
id = "b1"
/>
<BBB
id = "b2"
/>
<BBB
name = "bbb"
/>
<BBB
/>
</AAA
>
谓语在XPath是重要的一部分,谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。
1、选择AAA下的第一个BBB元素 语法:/AAA/BBB[1]
<AAA
>
<BBB
/>
<BBB
/>
<BBB
/>
<BBB
/>
</AAA
>
2、选择AAA下的最后一个BBB元素 语法:/AAA/BBB[last()]
<AAA
>
<BBB
/>
<BBB
/>
<BBB
/>
<BBB
/>
</AAA
>
3、选择AAA下的倒数第二个BBB元素 语法:/AAA/BBB[last()-1]
<AAA
>
<BBB
/>
<BBB
/>
<BBB
/>
<BBB
/>
</AAA
>
4、选择AAA下的前面两个BBB元素 语法:/AAA/BBB[position()<3]
<AAA
>
<BBB
/>
<BBB
/>
<BBB
/>
<BBB
/>
</AAA
>
5、获取AAA下的BBB下的有s属性的CCC元素 语法:/AAA/BBB/CCC[@s]
<AAA
>
<BBB
>
<CCC
s = "1"
/>
<CCC
s = "2"
/>
<CCC
s = "3"
/>
<CCC
s = "4"
/>
<CCC
s = "5"
/>
<CCC
r
= "a"
/>
</BBB
>
<CCC
>
<BBB
r = "a"
/>
<BBB
r = "b"
/>
<BBB
r = "c"
/>
</CCC
>
<BBB
/>
<BBB
/>
</AAA
>
6、选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 语法:bookstore/book[price>35.00]
<bookstore
>
<book>
<title land="eng">Book1</title>
<price>29.99</tilte>
</book>
<book
>
<title land="eng">Book2</title>
<price>39.55</tilte>
</book
>
</bookstore
>
7、选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00. 语法:/bookstore/book[price>35.00]/title
<bookstore
>
<book>
<title land="eng">Book1</title>
<price>29.99</tilte>
</book>
<book>
<title
land="eng">Book2</title
>
<price>39.55</tilte>
</book>
</bookstore
>
来自下面链接(有改动和更新)
http://www.cnblogs.com/zhaozhan/archive/2009/09/09/1563617.html
分享到:
相关推荐
XPath语法简要说明1
- **学习资源**:通常,这样的插件还会包含XPath语法的简要教程,帮助初学者快速上手。 3. **XPath在爬虫中的应用**: - **定位目标信息**:在网页抓取时,XPath可以精确地定位到需要的数据,如商品价格、评论...
Selenium 自动化测试面试总结 本文总结了自动化测试面试的相关知识点,涵盖了 UI 自动化的框架、元素定位、等待等内容,并提供了实用的面试题和答案。 一、编程基础 1. 单引号、双引号、三引号的区别:单引号和双...
- **ASP.NET概述**:简要介绍了ASP.NET的基本概念。 - **网页生命周期**:讲解了ASP.NET网页的执行流程。 - **服务器控件**:通过实例展示了如何使用ASP.NET服务器控件构建动态网页。 **19. 第18章:ASP.NET** ...
通过学习《XML官方指南》,读者可以掌握XML的基本语法,了解如何创建合法的XML文档,以及如何利用DOM(Document Object Model)、SAX(Simple API for XML)等解析器进行XML数据的处理。 XML的扩展性体现在它可以...
1. **C#语言基础**:本书首先介绍C#语言的基本语法,包括变量、数据类型、运算符、控制流程(如条件语句和循环)、数组和集合等概念,这些都是编程的基础。 2. **面向对象编程**:C#是一种强类型、面向对象的语言,...
- **与SQL/Foundation的关联**:基础部分定义了SQL的基本语法,为XML相关规范提供了必要的上下文。 - **与SQL/Schemata的关联**:信息和定义模式部分规定了数据库模式的创建规则,对于管理XML相关的表结构至关重要。...
通过本教程的学习,您已经了解了IBM DB2 9中XQuery的基本概念及应用。XQuery作为一种专门针对XML数据的查询语言,在DB2 9中提供了丰富的功能,能够帮助用户更加灵活地管理和查询存储在DB2中的XML数据。对于那些希望...
- **C#语言基础**:C#是一种现代的、面向对象的编程语言,本书对其语法进行了详细介绍,为后续的ASP.NET编程打下了坚实的基础。 #### 三、ASP.NET核心技术 - **WebForms页面**:解释了WebForms的概念、工作原理及其...
好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...
- PHP的基本语法,如变量声明、数据类型、控制结构(if、else、switch)、循环(for、while、do-while)。 - PHP函数的使用,如字符串处理函数(strlen、substr、str_replace)、数组处理函数(array_push、count...
在本章中,我们将学习如何安装和配置Selenium WebDriver,以及如何创建第一个自动化测试脚本,比如打开一个网页、输入文本、点击按钮等基本操作。 2. **元素定位**: 在自动化测试中,我们需要找到网页上的特定元素...
这大大降低了学习成本,使得开发者无需关注底层实现,只需要专注于XPath语法即可。JAXEN的性能也相当出色,尤其是在处理大型XML文档时,依然能保持较高的查询速度。 在实际应用中,DOM4J和JAXEN经常协同工作。例如...
Python语言因其简洁明了的语法和丰富的第三方库,成为制作爬虫的理想选择。在给定的“自制Python网络爬虫”项目中,包含了三个Python脚本:第一个爬虫.py、第一个爬虫2.py和nd.py,这些都是实现爬虫功能的源代码文件...
在这一部分,教程首先介绍了命名空间的基本术语(4.1节),然后解释了多命名空间文档的语法(4.2节),以及如何处理这些命名空间(4.3节)。 “Creating a new XML document”章节阐述了如何用lxml来创建新的XML...