转:http://hi.baidu.com/likejava/blog/item/ef8f43d013c6378fa1ec9c0b.html

XPath使用路径表达式去确定XML文档中的节点。我们将利用下面的XML文档描述XPath语法

 1 xml version="1.0" encoding="GB2312"?>   2    3 <order>   4   <item catalog="parts">   5     <itemNumber>C2688-67037itemNumber>   6     <description>LCD液晶显示器description>   7     <quantity>1quantity>   8     <price>358.00price>   9   item>  10     <item catalog="parts">  11     <itemNumber>C2688-67061itemNumber>  12     <description>音箱description>  13     <quantity>1quantity>  14     <price>16.50price>  15   item>  16     <item catalog="parts">  17     <itemNumber>C2688-67010itemNumber>  18     <description>鼠标description>  19     <quantity>1quantity>  20     <price>8.50price>  21   item>  22 order>  

节点定位:

XML文挡可以表示为树结构节点形式
XPath使用模式表达式识别XML文档的节点。

一个XPath的模式是使用反斜杠“/”分开子元素名称描述路径

下面的XPath表达式选择元素order下元素item中的所有price元素
/order/item/price

注释:用“/”路径开始代表元素的绝对路径.

不用“/”路径开始代表元素的相对路径

item/price

用“//”路径开始代表整个文档满足条件的所有元素

下面的XPath表达式选择文档中所有的item元素
//item

选择未知元素

通配符 “*”可用于选择未知XML元素

下面的XPath表达式选择元素order中的所有item元素所属的子元素

/order/item/*

下面的XPath表达式选择元素order下所有孙子辈的price元素
/order/*/price

下面的XPath表达式选择所有具有两个祖先的price元素
/*/*/price

下面的XPath表达式选择文档所有元素
//*

选择分支

使用方括号[]可以指定特定的元素

下面的XPath表达式选择元素order中的第一个item的子元素

/order/item[1]

下面的XPath表达式选择元素order中的最后一个item的子元素
/order/item[last()]

下面的XPath表达式选择元素order中具有price元素的item元素
/order/item[price]

下面的XPath表达式,从元素order中选择具有price等于12.60元素的item元素
/order/item[price=16.50]

下面的XPath表达式,从隶属于元素order的item元素中选择具有price等于12.60元素的price元素
/order/item[price=16.50]/price

选择几个路径

在XPath表达式中,使用 "|" 运算符可以选择几个路径 。实质上是逻辑“与”操作

下面的XPath表达式,从隶属于order的item元素中选择所有itemNumber 和description 元素 
/order/item/itemNumber | /order/item/description

下面的XPath表达式,从文档中选择所有itemNumber 和description 元素 
//itemNumber | //description

下面的XPath表达式,从文档中选择所有itemNumber ,description和price 元素 
//itemNumber | //description | //price

下面的XPath表达式,选取属于order中item下所有itemNumber元素和从文档中选择所有description元素 
/order/item/itemnumber | //description

选择属性
在XPath中,所有属性使用@前缀

下面的XPath表达式,选取所有名为catalog的属性
//@catalog

下面的XPath表达式,选取所有具有catalog属性的item元素
//item[@catalog]

下面的XPath表达式,选取所有具有任何属性的item元素
//item[@*]

下面的XPath表达式,选取所有具有catalog等于"parts"属性的item元素
//item[@catalog="parts"]

转载于:https://www.cnblogs.com/pengyingh/articles/2342486.html

libxml中用到的Xpath语法说明相关推荐

  1. python selenium语法_selenium之xpath语法总结

    xpath语法 1. 什么是XPath? XPath是一种XML路径,用于浏览页面的HTML结构.他是一种语法或者语言用来查找使用XML路径表达的网页中的任意元素. XPath的基本形式如下: Xpa ...

  2. 爬虫之xpath语法-常用节点选择语法

    爬虫之xpath语法-常用节点选择语法 可以通过通配符来选取未知的html.xml的元素 1.1 选取未知节点的语法 通配符 描述 * 匹配任何元素节点. node() 匹配任何类型的节点. 1.2 ...

  3. 爬虫之xpath语法-节点修饰语法

    爬虫之xpath语法-节点修饰语法 可以根据标签的属性值.下标等来获取特定的节点 1.1 节点修饰语法    [用[ ]方括号修饰标签或节点] 1.2 关于xpath的下标 在xpath中,第一个元素 ...

  4. 爬虫之 lxml模块和xpath语法

    爬虫之 lxml模块和xpath语法 对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法. lxml模块可以利用XPath规则语法,来快速的定位HTML\XM ...

  5. Xpath语法-爬虫(一)

    前言 这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作. 备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经 ...

  6. python xpath语法-XPath语法和lxml模块(数据提取)

    XPath语法和lxml模块 XPath lxml库 1.什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素 ...

  7. python xpath语法-Python爬虫之XPath语法和lxml库的用法

    本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 安装 为什么要用这个库 ...

  8. python xpath语法-Python爬虫基础之XPath语法与lxml库的用法详解

    前言 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 XPath 即为 ...

  9. python xpath语法-Python Xpath语法

    一.python数据提取xpath 1.beautifulsoup xpath 正则表达式 2.xpath是一种在XML和HTML文档中查找信息的语言,可用来在XML和HTML中对元素进行遍历 Chr ...

最新文章

  1. “三板斧”式文化价值体系互助协作,打通企业全流程管理模式
  2. 程序的格式框架语法元素的名称(Python)
  3. linux 列出内存/cpu使用率前10的进程
  4. 哈尔滨工程大学ACM预热赛
  5. libuuid 安装
  6. 同时启动多个Tomcat 和 Linux部署多个tomcat
  7. Markdown 使用教程
  8. os和shutil模块
  9. @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?
  10. C++_函数_函数重载注意事项_---C++语言工作笔记035
  11. 完整教程--idea使用git进行项目管理
  12. 无限制版电驴连接不上服务器,电驴怎么连接服务器?电驴连接不上服务器的解决方法介绍...
  13. linux制作iso启动盘
  14. 计算机毕业设计JAVA鸿鹄教育培训mybatis+源码+调试部署+系统+数据库+lw
  15. Mac OS 源码 截屏工具
  16. qq2007服务器中断,自动重启pubwin2007服务器脚本
  17. 移动硬盘删除的文件如何恢复
  18. Arturia 发布 SQ80 V 80年代经典音色合成器软件
  19. 微信小程序云开发联表查询【聚合】
  20. 2023年提高Google关键词排名的方法,如何提高谷歌排名?

热门文章

  1. OpenCV SURF FLANN匹配的实例(附完整代码)
  2. C++数组的左右旋转的实现算法(附完整源码)
  3. OpenGL normalviewer普通视图的实例
  4. VisualStudioIDE各个版本大合集分享
  5. C++对C的加强之struct类型加强
  6. c语言贪吃蛇游戏完整代码
  7. android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
  8. redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类
  9. Kettle使用_18 分组组件计算百分位数
  10. Python基础概念_10_异常处理