全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

xpath简介_动力节点Java学院整理

简单说,xpath就是选择XML文件中节点的方法。

所谓节点(node),就是XML文件的最小构成单位,一共分成7种。

- element(元素节点)
- attribute(属性节点)
- text (文本节点)
- namespace (名称空间节点)
- processing-instruction (处理命令节点)
- comment (注释节点)
- root (根节点)

xpath可以用来选择这7种节点。不过,下面的笔记只涉及最常用的第一种element(元素节点),因此可以将下文中的节点和元素视为同义词。

一、xpath表达式的基本格式

xpath通过"路径表达式"(Path Expression)来选择节点。在形式上,"路径表达式"与传统的文件系统非常类似。

# 斜杠(/)作为路径内部的分割符。
# 同一个节点有绝对路径和相对路径两种写法。
# 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/...。
# 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用"/"起首。
# "."表示当前节点。
# ".."表示当前节点的父节点

二、选择节点的基本规则

- nodename(节点名称):表示选择该节点的所有子节点
- "/":表示选择根节点
- "//":表示选择任意位置的某个节点
- "@": 表示选择某个属性

三、选择节点的实例

先看一个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>

[例1]

bookstore :选取 bookstore 元素的所有子节点。

[例2]

/bookstore :选取根节点bookstore,这是绝对路径写法。

[例3]

bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。

[例4]

//book :选择所有 book 子元素,而不管它们在文档中的位置。

[例5]

bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

[例6]

//@lang :选取所有名为 lang 的属性。

四、xpath的谓语条件(Predicate)

所谓"谓语条件",就是对路径表达式的附加条件。

所有的条件,都写在方括号"[]"中,表示对节点进行进一步的筛选。

[例7]

/bookstore/book[1] :表示选择bookstore的第一个book子元素。

[例8]

/bookstore/book[last()] :表示选择bookstore的最后一个book子元素。

[例9]

/bookstore/book[last()-1] :表示选择bookstore的倒数第二个book子元素。

[例10]

/bookstore/book[position()<3] :表示选择bookstore的前两个book子元素。

[例11]

//title[@lang] :表示选择所有具有lang属性的title节点。

[例12]

//title[@lang='eng'] :表示选择所有lang属性的值等于"eng"的title节点。

[例13]

/bookstore/book[price] :表示选择bookstore的book子元素,且被选中的book元素必须带有price子元素。

[例14]

/bookstore/book[price>35.00] :表示选择bookstore的book子元素,且被选中的book元素的price子元素值必须大于35。

[例15]

/bookstore/book[price>35.00]/title :表示在例14结果集中,选择title子元素。

[例16]

/bookstore/book/price[.>35.00] :表示选择值大于35的"/bookstore/book"的price子元素。

五、通配符

# "*"表示匹配任何元素节点。
# "@*"表示匹配任何属性值。
# node()表示匹配任何类型的节点。

[例17]

//* :选择文档中的所有元素节点。

[例18]

/*/* :表示选择所有第二层的元素节点。

[例19]

/bookstore/* :表示选择bookstore的所有元素子节点。

[例20]

//title[@*] :表示选择所有带有属性的title元素。

六、选择多个路径

用"|"选择多个并列的路径。

[例21]

//book/title | //book/price :表示同时选择book元素的title子元素和price子元素。


# xpath  # 简介  # JAVA通过XPath解析XML性能比较详解  # java selenium XPath 定位实现方法  # java使用xpath解析xml示例分享  # java使用xpath和dom4j解析xml  # 深入XPath的详解以及Java示例代码分析  # java编程之xpath介绍  # 这是  # 多个  # 而不  # 文档  # 第一个  # 则是  # 两种  # 第二个  # 写在  # 文件系统  # 第一种  # 先看  # 最常用  # 形式上  # 可以用来  # 第二层  # 附加条件  # 与传统  # Expression  # Path 


相关文章: 网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  如何通过西部数码建站助手快速创建专业网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何零成本快速生成个人自助网站?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  如何登录建站主机?访问步骤全解析  如何构建满足综合性能需求的优质建站方案?  制作网页的网站有哪些,电脑上怎么做网页?  建站之星各版本价格是多少?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  建站主机服务器选型指南与性能优化方案解析  网站制作的步骤包括,正确网址格式怎么写?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在建站宝盒中设置产品搜索功能?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  制作网站的模板软件,网站怎么建设?  代购小票制作网站有哪些,购物小票的简要说明?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  制作网站外包平台,自动化接单网站有哪些?  活动邀请函制作网站有哪些,活动邀请函文案?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何挑选优质建站一级代理提升网站排名?  制作农业网站的软件,比较好的农业网站推荐一下?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何选择可靠的免备案建站服务器?  如何用免费手机建站系统零基础打造专业网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站VPS能否同时实现高效与安全翻墙?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  建站之星如何实现网站加密操作?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  小型网站制作HTML,*游戏网站怎么搭建?  如何快速上传自定义模板至建站之星?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  制作网站的软件免费下载,免费制作app哪个平台好?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  如何规划企业建站流程的关键步骤?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  网页设计网站制作软件,microsoft office哪个可以创建网页?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。