资讯专栏INFORMATION COLUMN

XPath 常用表达式

jeffrey_up / 536人阅读

摘要:实例文档选取节点使用路径表达式在文档中选取节点。选取所有名为的属性。选取所有元素的元素,且其中的元素的值须大于。实例解析在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果路径表达式结果选取所有元素的和元素。

XML 实例文档

 
 
   
    Harry Potter 
    29.99 
   
   
    Learning XML 
    39.95 
   
 
选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

下面列出了最有用的路径表达式:

表达式 描述 
nodename 选取此节点的所有子节点 
/ 从根节点选取 
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 
. 选取当前节点 
.. 选取当前节点的父节点 
@ 选取属性 

实例解析1:

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式 结果 
bookstore 选取 bookstore 元素的所有子节点 

/bookstore 选取根元素 bookstore

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore/book 选取所有属于 bookstore 的子元素的 book 元素。 
//book 选取所有 book 子元素,而不管它们在文档中的位置。 
bookstore//book 选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。 
//@lang 选取所有名为 lang 的属性。 
谓语(Predicates)

谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

实例解析2:

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

路径表达式 结果 
/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。 
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。 
//title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。 
//title[@lang="eng"] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 
/bookstore/book[price>35.00] 选取所有 bookstore 元素的 book 元素,且其中的 price 元素的值须大于 35.00。 
/bookstore/book[price>35.00]/title 选取所有 bookstore 元素中的 book 元素的 title 元素,且其中的 price 元素的值须大于 35.00。 
选取未知节点

XPath 通配符可用来选取未知的 XML 元素。

通配符 描述 

匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点

实例解析3:

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果 
/bookstore/* 选取 bookstore 元素的所有子节点 
//* 选取文档中的所有元素 
//title[@*] 选取所有带有属性的 title 元素。 
选取若干路径

通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

实例解析4:

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果 
//book/title | //book/price 选取所有 book 元素的 tilte 和 price 元素。 
//title | //price 选取所有文档中的 title 和 price 元素。 
/bookstore/book/title | //price 选取所有属于 bookstore 元素的 book 元素的 title 元素,以及文档中所有的 price 元素。 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110343.html

相关文章

  • Python3网络爬虫实战---28、解析库的使用:XPath

    摘要:上一篇文章网络爬虫实战与正则表达式抓取猫眼电影排行下一篇文章网络爬虫实战解析库的使用上一节我们实现了一个最基本的爬虫,但提取页面信息时我们使用的是正则表达式,用过之后我们会发现构造一个正则表达式还是比较的繁琐的,而且万一有一点地 上一篇文章:Python3网络爬虫实战---27、Requests与正则表达式抓取猫眼电影排行下一篇文章:Python3网络爬虫实战---29、解析库的使用:...

    abson 评论0 收藏0
  • Scrapy Shell

    摘要:如果安装了,终端将使用替代标准终端。终端与其他相比更为强大,提供智能的自动补全,高亮输出,及其他特性。也提供了一些快捷方式例如或同样可以生效如之前的案例。当然作用不仅仅如此,但是不属于我们课程重点,不做详细介绍。 Scrapy Shell Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便...

    HmyBmny 评论0 收藏0
  • 软件接口测试工具Jmeter使用核心详解【建议收藏】

    用Jmeter做接口测试只需要掌握几个核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根据工作需要和职业规划来学习更多的内容。这篇文章在前面接口测试框架(测试计划--->线程组--->请求--->查看结果树)的前提下,来介绍必须要掌握的几个核心功能,力求用最短的时间取得最大的成果。 在前面的文章中我提到,用Jmeter做接口测试的核心是单接口测试的参数化和关联接口测试...

    zoomdong 评论0 收藏0
  • 高程3总结#第18章JavaScript与XML

    摘要:在基于使用命名空间的文档求值时,需要使用对象。第四个参数的取值类型是下列常量之一,返回与表达式匹配的数据类型。,返回字符串值。这是最常用的结果类型。集合中节点的次序与它们在文档中的次序一致。 JavaScript与XML 浏览器对XML DOM的支持 DOM2级核心 在通过JavaScript处理XML时,通常只使用参数root,因为这个参数指定的是XML DOM文档元素的标签名 v...

    gaosboy 评论0 收藏0
  • Python爬虫笔记3-解析库Xpath的使用

    摘要:选取名为的所有属性库使用库安装官网安装进入命令行模式,执行安装进入终端模式,执行安装依赖的类库后,执行安装验证安装导入模块,如果没有报错就安装成功。输出结果输出结果多了一个声明,对解析结果没影响。 当爬取到Html数据后,可以用正则对数据进行提取,但有时候正则表达式编写起来不方便,而且万一写错了,可能导致匹配失败。这时候就需要借助其他解析工具了。 XML引入 什么是XML? XML ...

    simon_chen 评论0 收藏0

发表评论

0条评论

jeffrey_up

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<