博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
libxml中用到的Xpath语法说明
阅读量:6996 次
发布时间:2019-06-27

本文共 2028 字,大约阅读时间需要 6 分钟。

转:

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

 

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

你可能感兴趣的文章
标准STP中的集成数据验证策略
查看>>
php定时执行任务
查看>>
Visual studio2012密钥 vs2012密钥 本人亲测 真实有效
查看>>
功能点过程
查看>>
jquery瀑布流布局
查看>>
常见网络服务器开发开源项目代码规模
查看>>
DHCP+tftp+pxe+kickstart自动安装Linux系统
查看>>
A20总线
查看>>
Dart语言【009】DOM 操作
查看>>
Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...
查看>>
Django博客系统基础配置
查看>>
拖拽元素
查看>>
Ubuntu源码安装Openstack(三)
查看>>
docker两个容器之间连接---centos7容器+mysql容器
查看>>
VML/SVG开发配电站接线系统
查看>>
Oracle 数据库导入导出 dmp文件
查看>>
浅谈什么是云主机及其优势所在
查看>>
使用命令行工具对LSI阵列卡进行高效管理
查看>>
利用Java编码实现对oracle数据库的操作
查看>>
java字符串分割处理split及特殊符号
查看>>