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语法
主要介绍了Python3 xml.etree.ElementTree支持的XPath语法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
对XPath语法进行了详细的讲解。XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。开发人员必备
xpath简介、教程、Axes、节点、实例、语法、运算符
2.语法详解 #1.选取节点 ''' / 如果是在最前面,代表从根节点选取,否则选择某节点下的某个节点.只查询子一辈的节点 /html 查询到一个结果 /div 查询到0个结果,因为根节点以下只有一个html子节点 /...
二、xpath helper插件三、xpath helper安装使用方法四、XPath语法4.1 节点语法4.2 节点实例4.3 谓语(Predicates)4.4 选取未知节点4.5 选取若干路径五、XPath 轴5.1 轴常用语法5.2 位置路径表达式5.3 步(step)的...
主要给大家介绍了关于Python爬虫基础之XPath语法与lxml库用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本篇文章是对在C#中使用XPath的示例进行了详细的分析介绍,需要的朋友参考下
主要介绍了PHP使用xpath解析XML的方法,结合实例形式详细分析了Xpath语法以及通过Xpath解析xml文档的操作步骤与相关实现技巧,需要的朋友可以参考下
您可能感兴趣的文章:c#通过xpath读取xml示例java使用xpath解析xml示例分享java使用xpath和dom4j解析xml深入XPath的详解以及Java示例代码分析解析XPath语法之在C#中使用XPath的示例详解使用HtmlAgilityPack XPath ...
etree使用xpath语法。 import requests import ssl from lxml import etree ssl._create_default_https_context = ssl._create_unverified_context session = requests.Session() for id in range(0, 251, 25): ...
全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
12.8.2 jsp文档中的元素语法 404 12.9 小结 407 第13章 jsp与javabean 409 13.1 javabean简介 409 13.1.1 属性的命名 409 13.1.2 属性的类型 411 13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 ...
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写...JsonPath与XPath语法对比: Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。 相关推
12.8.2 jsp文档中的元素语法 404 12.9 小结 407 第13章 jsp与javabean 409 13.1 javabean简介 409 13.1.1 属性的命名 409 13.1.2 属性的类型 411 13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 ...
XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与...
12.8.2 jsp文档中的元素语法 404 12.9 小结 407 第13章 jsp与javabean 409 13.1 javabean简介 409 13.1.1 属性的命名 409 13.1.2 属性的类型 411 13.2 在jsp中使用javabean 412 13.2.1 [jsp:usebean] 412 ...