libxml中用到的Xpath语法说明
转: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语法说明相关推荐
- python selenium语法_selenium之xpath语法总结
xpath语法 1. 什么是XPath? XPath是一种XML路径,用于浏览页面的HTML结构.他是一种语法或者语言用来查找使用XML路径表达的网页中的任意元素. XPath的基本形式如下: Xpa ...
- 爬虫之xpath语法-常用节点选择语法
爬虫之xpath语法-常用节点选择语法 可以通过通配符来选取未知的html.xml的元素 1.1 选取未知节点的语法 通配符 描述 * 匹配任何元素节点. node() 匹配任何类型的节点. 1.2 ...
- 爬虫之xpath语法-节点修饰语法
爬虫之xpath语法-节点修饰语法 可以根据标签的属性值.下标等来获取特定的节点 1.1 节点修饰语法 [用[ ]方括号修饰标签或节点] 1.2 关于xpath的下标 在xpath中,第一个元素 ...
- 爬虫之 lxml模块和xpath语法
爬虫之 lxml模块和xpath语法 对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法. lxml模块可以利用XPath规则语法,来快速的定位HTML\XM ...
- Xpath语法-爬虫(一)
前言 这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作. 备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经 ...
- python xpath语法-XPath语法和lxml模块(数据提取)
XPath语法和lxml模块 XPath lxml库 1.什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素 ...
- python xpath语法-Python爬虫之XPath语法和lxml库的用法
本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 安装 为什么要用这个库 ...
- python xpath语法-Python爬虫基础之XPath语法与lxml库的用法详解
前言 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 XPath 即为 ...
- python xpath语法-Python Xpath语法
一.python数据提取xpath 1.beautifulsoup xpath 正则表达式 2.xpath是一种在XML和HTML文档中查找信息的语言,可用来在XML和HTML中对元素进行遍历 Chr ...
最新文章
- “三板斧”式文化价值体系互助协作,打通企业全流程管理模式
- 程序的格式框架语法元素的名称(Python)
- linux 列出内存/cpu使用率前10的进程
- 哈尔滨工程大学ACM预热赛
- libuuid 安装
- 同时启动多个Tomcat 和 Linux部署多个tomcat
- Markdown 使用教程
- os和shutil模块
- @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?
- C++_函数_函数重载注意事项_---C++语言工作笔记035
- 完整教程--idea使用git进行项目管理
- 无限制版电驴连接不上服务器,电驴怎么连接服务器?电驴连接不上服务器的解决方法介绍...
- linux制作iso启动盘
- 计算机毕业设计JAVA鸿鹄教育培训mybatis+源码+调试部署+系统+数据库+lw
- Mac OS 源码 截屏工具
- qq2007服务器中断,自动重启pubwin2007服务器脚本
- 移动硬盘删除的文件如何恢复
- Arturia 发布 SQ80 V 80年代经典音色合成器软件
- 微信小程序云开发联表查询【聚合】
- 2023年提高Google关键词排名的方法,如何提高谷歌排名?
热门文章
- OpenCV SURF FLANN匹配的实例(附完整代码)
- C++数组的左右旋转的实现算法(附完整源码)
- OpenGL normalviewer普通视图的实例
- VisualStudioIDE各个版本大合集分享
- C++对C的加强之struct类型加强
- c语言贪吃蛇游戏完整代码
- android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
- redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类
- Kettle使用_18 分组组件计算百分位数
- Python基础概念_10_异常处理