`
ceasarje
  • 浏览: 77254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XPath常用表达式

XML 
阅读更多
XML 实例文档
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
  </book>
  <book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
  </book>
</bookstore>

选取节点

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 元素。

分享到:
评论

相关推荐

    XmlHelper XPath路径表达式选取XML节点

    XPath路径表达式选取XML节点.doc 为XML中常用属性说明 XmlHelper.CS 一个类文件 包括对XML 文件的常规操作 xml字符串转换为dataTable DataTable 转换为xml 找出所有与pPath匹配路径的节点创建dataTable,并设置...

    CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件

    常用的CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件----据大家的要求把分降低了

    XPath基础.docx

    在scrapy中,对数据进行筛选和提取,采用较多的是XPath表达式。本文介绍了常用的提取方法。XPath是一种XML路径语言,通过该语言,可以在XML文档中迅速查找到相应的信息。 在XPath表达式中,使用“/”可以选择某个...

    EL表达式的详细使用

    表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型...

    Task 02 Xpath(2.2)

    2.2.2 Xpath常用的路径表达式: XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根...

    Java开源的xpath解析器Jsoupxpath.zip

    支持标准xpath语法(支持谓语嵌套),支持全部常用函数,支持全部常用轴,去掉了一些标准里面华而不实的函数和轴,下面会具体介绍。语法可以参考http://www.w3school.com.cn/xpath/index.asp 关于使用Xpath的一些...

    每天30分钟 一起来学习爬虫——day10(解析数据 之 xpath,实例:好段子爬取)

    常用的路径表达式:实例:安装xpath插件到浏览器。看代码中的使用:爬取好段子 xpath 解析网页 什么是xpath ? xml: 可扩展标记语言,用来传输和存储数据。他的标签没有预定义,要自己定义标签。 与html的区别: ...

    Xpah表达式超方便使用指南

    相对定位路径:// (最常用) 绝对路径的使用定位方式会导致一段div等节点中修改或增加模块导致这个定位表达式无法使用。维护成本大,需要经常修改表达式,元素表达式定位的范围大路径太死 相对定位方式页面层级出现...

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

    二、xpath helper插件三、xpath helper安装使用方法四、XPath语法4.1 节点语法4.2 节点实例4.3 谓语(Predicates)4.4 选取未知节点4.5 选取若干路径五、XPath 轴5.1 轴常用语法5.2 位置路径表达式5.3 步(step)的...

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

    xml.etree.ElementTree可以通过支持的有限的XPath表达式来定位元素。 语法 ElementTree支持的语法如下: 语法 说明 tag 查找所有具有指定名称tag的子元素。例如:country表示所有名为country的元素,country/...

    使用Python的各种爬虫真实案例源码资源

    这是一个基于Python的爬虫案例,使用了Scrapy框架和XPath表达式。它可以爬取指定网站的新闻标题、发布时间和内容,并将结果保存到数据库中。通过设置爬虫的起始链接和规则,自动遍历网页,提取所需信息。同时,使用...

    关于Dom4j编程的相关jar包

    里面有关于dom4j的jar包和XPath表达式所需的相关包.解压缩后共3个jar包.

    Android 本地网络小说爬虫,基于jsoup及xpath.zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

    爬虫解析_xpath基本应用(解析本地文件和服务器响应).zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

    大数据爬虫技术第5章 数据解析.ppt

    还可以调用xpath()方法,使用元素作为上下文节点来评估XPath表达式。 示例 # 从字符串中解析XML,返回根节点 root = etree.XML("&lt;root&gt;&lt;a x='123'&gt;aText&lt;b/&gt;&lt;c/&gt;&lt;b/&gt;&lt;/a&gt;&lt;/root&gt;") # 从根节点查找,返回匹配到的...

    基于jsp+servlet+bean实现的mvc源码

    一、Servlet+JSP+JavaBean开发模式(MVC)介绍  Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责...2 jaxen-1.1-beta-6.jar 用于解析XPath表达式 3 commons-bean

    Python数据分析实践:pandas读写html表格数据new.pdf

    非常强大,特别是用于抓取Table表格型数据,无需掌握正则表达式或者xpath等工具,短短的几行代码就可以将网页数据快速抓取下来并保存到本 地。 读取网页数据这种操作被称为网页抓取,应用比较广泛,它逐渐演变成数据...

    蜂巢爬虫系统 .zip

    常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...

Global site tag (gtag.js) - Google Analytics