XPath是 W3C(World Wide Website Consortium) 的一个标准。它最主要的目的是为了在 XML1.0 或 XML1.1 文档节点树中定位节点所设计。

XPath 即为 XML 路径语言,它是一种用来确定 XML(标准通用标记语言的子集,XML:Extensive Markup Language)文档中某部分位置的语言。XPath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于 XPointer 与 XSLT(eXtensible Stylesheet Language + Transformation) 间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言

0. 所谓节点

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

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

1. XPath 上下文

  • 当前节点(./):

    如./sender表示选择当前节点下的sender节点集合(等同于下面所讲的”特定元素”,如:sender)
  • 父节点(../):

    如../sender表示选择当前节点的父节点下的sender节点集合
  • 根元素(/):

    如/messages表示选择从文档根节点下的messages节点集合.
  • 根节点(/*):

    这里的*是代表所有节点,但是根元素只有一个,所以这里表示根节点。/*的返回结果和/messages返回的结果一样都是messages节点。
  • 递归下降(//):

2. 一个 XML 实例

先看一个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>
  • bookstore :选取 bookstore 元素的所有子节点。
  • /bookstore :选取根节点bookstore,这是绝对路径写法。
  • bookstore/book :选取所有属于 bookstore 的子元素的 book元素,这是相对路径写法。
  • //book :选择所有 book 子元素,而不管它们在文档中的位置。
  • bookstore//book :选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。
  • //@lang :选取所有名为 lang 的属性。

xpath路径表达式笔记

从 XML 到 XPath的更多相关文章

  1. Parse xml/json[xpath/jpath]

    import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...

  2. XML的xPath格式

    XML的xPath格式(C#) xPath是XML提供的一种格式,用来查询XML的节点. <?xml version="1.0" encoding="ISO-885 ...

  3. xml的xPath解析规则

    一,为什么要用xpath技术 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! 二,xpath的规则 2.1,/根元素的案例 /AAA 选择根元素AAA       ...

  4. C#操作Xml:XPath语法 在C#中使用XPath示例

    XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  5. XML之XPath操作

    在学习XPath之前你应该对XML的节点,元素,属性,原子值(文本),处理指令,注释,根节点(文档节点),命名空间以及对节点间的关系如:父(Parent),子(Children),兄弟(Sibling ...

  6. XML之XPath

    1.在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点(或称为根节点). 1.1 XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元 ...

  7. C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点

    #region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...

  8. 使用Dom4j的xPath解析xml文件------xpath语法

    官方语法地址:http//www.w3school.com.cn/xpath/index.asp xpath使用路径表达式来选取xml文档中的节点或节点集.节点是通过沿着路径(path)或者步(ste ...

  9. XML 的 XPath 语法

    XPath 是 XML 路径语言(XML Path Language),用来确定XML文档中某部分位置的语言.无论是什么语言什么框架,几乎都可以使用 XPath 来高效查询 XML 文件. 本文将介绍 ...

  10. 10JDBC、CURD、XML、XPath

    10JDBC.CURD.XML.XPath-2018/07/20 1.JDBC JDBC:java database connectivity JDBC与数据库驱动的关系:接口与实现的关系. JDBC ...

随机推荐

  1. AES 加密解密

    package XX.XX.XX.test; import java.io.IOException; import java.io.UnsupportedEncodingException; impo ...

  2. ARCGIS动态画点

    小马哥淡定 原文 ARCGIS动态画点 private void DrawPointOnMap(double x, double y,bool clear) { IMapControl2 pMapCt ...

  3. 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

    <PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...

  4. ZOJ-1649 Rescue BFS (HDU 1242)

    看题传送门: ZOJ http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649 HDU http://acm.hdu.edu. ...

  5. Size Balanced Tree(SBT树)整理

    不想用treap和Splay,那就用SB树把,哈哈,其实它一点也SB,厉害着呢. 先膜拜一下作者陈启峰.Orz 以下内容由我搜集整理得来. 一.BST及其局限性 二叉查找树(Binary Search ...

  6. 【23.39%】【codeforces 558C】Amr and Chemistry

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. 最全面的iOS和Mac开源项目和第三方库汇总

    标签: UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UIT ...

  8. redisson

    http://www.tuicool.com/articles/BjyeaeQ http://blog.csdn.net/csujiangyu/article/details/51005342

  9. 解析C#内存管理

    C#内存管理解析 前言:对于很多的C#程序员来说,经常会很少去关注其内存的释放,他们认为C#带有强大的垃圾回收机制,所有不愿意去考虑这方面的事情,其实不尽然,很多时候我们都需要考虑C#内存的管理问题, ...

  10. winxp下安装mysql5.7提示mysqld.exe不是有效的win32文件

    http://bbs.csdn.net/topics/391919244 http://haohaoxuexi.iteye.com/blog/2123030