XPath回顾

之前一直觉得xpath是个好东西,不过都是用到的时候才想到去网上查语法,没有系统的回顾总结过,现在总结下:

 

1.路径
使用相对或者觉得路径进行配置对应的xml节点
例:
1)绝对路径
/ROOT/ChildA/ChildB
"/"表示根目录,即从根目录开始ROOT下的ChildA的子节点ChildB,若已经在文档中的某个结点位置,可以使用绝对路径方式快速重新定位
2)相对路径
ChildA/ChildB
即当程序已经在ROOT结点,需要找其中的子结点ChildA的ChildB
3)"//"表示所有路径以"//"后指定的子路径结尾的元素
//ChildA/ChildB,即所有包含路径"ChildA/ChildB"的ChildB结点
4)"*"通配符
/ROOT/ChildA/*,即ChildA下所有子结点

2.位置
1)/ROOT/ChildA/ChildB[1]
表示该路径下的所有结点的第一个结点,即有name属性的ChildB
2)/ROOT/ChildA/ChildB[last()]
表示该路径下的所有结点的最后一个结点,即有id属性的ChildB
3)/ROOT/ChildA/ChildB[position()>1]
表示该路径下的所有结点中除第一个结点以外的其他结点,即有id属性的ChildB

3.属性
1)//ChildB[@id]
表示所有有id属性的ChildB结点
2)//ChildB[@*]
表示所有有属性的ChildB结点
3)//ChildB[not(@*)]
表示所有不具备属性的ChildB结点
4)//ChildB[@id='B']
表示所有有id属性等于B的ChildB结点
5)//ChildA[ChildB='B']
表示所有带有子节点ChildB且ChildB的结点指为B的结点ChildA,从这个例子可以看出xpath是支持嵌套的,即可以有这样的形式,//ChildA[ChildB[@id='B']='B']

4.其他
还有一些内置的关键字的xpath查找定位方式,比如//ChildC/parent::*,即所有ChildC的父结点
parent:父结点
ancestor:所有祖先结点
child:子结点
descendant:所有后代结点
self:结点本身
ancestor-or-self:祖先和本身
descendant-or-self:后代和本身
following-sibling:后续兄弟元素
preceding-sibling:前续兄弟元素
following:所有后续元素
preceding:所有前续元素


注:xpath中定位需注意区分大小写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值