XPath语法简要

XPath是在XML文档中查找信息的语言,可对元素和属性进行遍历。

利用以下的XML内容。

<bookshop>
    <book>
        <name>Introduction to Algorithms</name>
        <author>Thomas H. Cormen, etc.</author>
        <price>68.00</price>
    </book>
    <book>
        <name>Deep Learning</name>
        <author>Ian Goodfellow, etc.</author>
        <price>610.00</price>
    </book>
</bookshop>

1.节点关系

父节点(parent):上一级节点,只有一个。book的父节点是bookshop。
子节点(child):下一级节点,可有一个,多个或零个。book的子节点有name,author,price。
兄弟同胞(sibling):有相同父节点的节点。name,author,price的父节点都是book,它们是兄弟同胞关系。
先辈(ancestor):节点的父节点,父节点的父节点,等等。name的先辈有book,bookshop。
后辈(descendant):节点的子节点,子节点的子节点,等等。bookshop的后辈有book,name,author,price。

2.节点选取

表达式 说明 例子 例子的结果说明
nodename 节点的所有子节点 bookshop bookshop元素的所有子节点
/ 从根节点选取 /bookshop
bookshop/book
根元素bookshop,由正斜杠(/)开始的代表着绝对路径
选取bookshop的所有book子元素
// 从匹配选择的当前节点选择文档中的节点,不考虑位置 //book
bookshop//book
选取所有book的子元素,不管在文档中的什么位置
选择bookshop后代的所有book元素,不管位于bookshop下的什么位置
. 当前节点
.. 当前节点的父节点
@ 选取属性 //@lang 选取名为lang的所有属性
* 匹配任何元素节点 /bookshop/*
//*
bookshop元素的所有子元素
文档中的所有元素
@* 匹配任何属性节点 //name[@*] 所有带有属性的name元素
node() 匹配任何类型的节点

3.节点索引

例子 例子的结果说明
/bookshop/book[1] bookshop的第一个book
/bookshop/book[last()] bookshop的倒数第一个book
/bookshop/book[last()-1] bookshop的倒数第二个book
/bookshop/book[position() < 3] bookshop的前两个book
/bookshop/book[price > 100.00] bookshop中的所有book,并且price的值大于100.00
/bookshop/book[price > 100.00]/name bookshop中的book的所有name,并且price的值大于100.00
//name[@lang] 所有name元素,并且这些元素有lang属性
//name[@lang=‘eng‘] 所有name元素,并且lang属性的值为eng
//book/name | //book/price book的所有name和price
//name | //price 文档中的所有name和price
/bookshop/book/name | //price bookshop的book的所有name,以及文档中的所有price

4.轴

轴名 说明 例子 例子的结果说明
ancestor 当前节点的所有先辈(父、祖父等) ancestor::book 当前节点的所有 book 先辈
ancestor-or-self 当前节点的所有先辈(父、祖父等)以及当前节点本身 ancestor-or-self::book 当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点)
attribute 当前节点的所有属性 attribute::lang
attribute::*
当前节点的 lang 属性
当前节点的所有属性
child 当前节点的所有子元素 child::book
child::*
child::text()
child::node()
child::price
当前节点的子元素的 book 节点
当前节点的所有子元素
当前节点的所有文本子节点
当前节点的所有子节点
当前节点的所有 price 孙节点
descendant 当前节点的所有后代元素(子、孙等) descendant::book 当前节点的所有 book 后代
descendant-or-self 当前节点的所有后代元素(子、孙等)以及当前节点本身 descendant-or-self::book 当前节点的所有 book 后辈以及当前节点(如果此节点是 book 节点)
following 文档中当前节点的结束标签之后的所有节点
namespace 当前节点的所有命名空间节点
parent 当前节点的父节点 parent::book 当前节点的父元素的 book 节点
preceding 当前节点的开始标签之前的所有节点
preceding-sibling 当前节点之前的所有同级节点
self 当前节点

5.运算符

运算符 说明 例子 例子的结果说明
| 并集 //book | //name 所有book和name节点
+ 1+2 3
- 4-3 1
* 2*3 6
div 4 div 2 2
= price=68.00 price为68.00,返回真,否则返回假
!= 不等 price!=68.00 price为68.00,返回假,否则返回真
< 小于 price<68.00 price小于68.00,返回真,否则返回假
<= 小于等于 price<=68.00 price小于等于68.00,返回真,否则返回假
> 大于 price>68.00 price大于68.00,返回真,否则返回假
>= 大于等于 price>=68.00 price大于等于68.00,返回真,否则返回假
or price=68.00 or price=610.00 price为68.00或610.00,返回真,否则返回假
and price>68.00 and price < 610.00 price为68.00与610.00之间,返回真,否则返回假
mod 除法的余数 5 mod 2 1

原文地址:https://www.cnblogs.com/Ooman/p/11163512.html

时间: 2024-07-31 00:50:45

XPath语法简要的相关文章

XPath语法 在C#中使用XPath示例

XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml version="1.0" encoding="utf-8" ?> <pets>   <cat color="black"

XML——XPATH语法介绍

为什么需要xpath? 在使用dom4j的时候,我们不能跨层获取某一个元素,必须一层一层去获取,这就非常麻烦. 所以为了我们更方便地访问某个节点,我们可以使用xpath技术,它可以让我们非常方便地读取到指定节点. xpath通常结合dom4j配合使用,而且如果要使用xpath,则需要引入一个新的包jaxen-1.1-beta-6.jar xpath的基础语法有以下几点: 1.基本的xpath语法类似于在一个文件系统中定位文件,如果路径以斜线/开始,那么该路径就表示到一个元素的绝对路径. (1)/

PowerShell技巧:使用XPath语法查询XML文件

[TechTarget中国原创] XML是存储结构化数据的一个很好的途径,但是想要让数据在其中发挥作用又会有些困难.每一种语言都有其特定方式来查询XML文件中的命名空间.元素及属性.PowerShell也不例外.PowerShell在查询XML文件时会略有不同,而该技巧主要依赖于Select-Xml命令和XPath语法上. XPath是定义XML文件组成的语言.XPath早在1999年就已经存在,一直被用于查询XML文件最标准的方法. XPath将XML文件定义为树.XML文件中的每个节点都节点

[XPath/Python] XPath 与 lxml (二)XPath 语法

XPath 选取节点时使用的表达式是一种路径表达式.节点是通过路径(path)或者步(steps)来选取的. 本章使用以下 XML 文档作为示例. <?xml version="1.0" encoding="utf8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</pr

XPath 语法规则

http://www.cnblogs.com/michaelsea/archive/2007/10/18/929230.html XPath is a language for finding information in an XML document. XPath is used to navigate through elements and attributes in an XML document. Xpath是一种能够在XML文档中寻找信息的语言.它通过XML文档中的元素和属性来进行

XPath语法 在C#中使用XPath示例 【转http://www.cnblogs.com/yukaizhao/archive/2011/07/25/xpath.html】非常详细的文章

XPath语法 在C#中使用XPath示例 XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: <?xml version="1.0" encoding="utf-8" ?> <pets> <cat color="black" weight="10"> <price>100</price>

Xpath语法学习

贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考 XPath 语法 3 详细语法参考 Xpath语法格式整理 4 官方参考 XPath 教程 XPath学习:基本语法(一)

XPath语法 在C#中使用XPath例子与用法

XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识.示例Xml: <?xml version="1.0" encoding="utf-8" ?> <pets> <cat color="black" weight="10"> <price>100</price> <desc>this is a b

xpath语法速查

xpath的具体学习可以通过w3c查看(链接:http://www.w3school.com.cn/xpath/index.asp) 这里只是将平时用到的几个表格贴出来,以后查询: 这里的xpath我个人觉得像选择器,有 语法+xpath轴运算+运算符+函数 几个结合使用. 函数很多,不贴出来了,需要的可以通过w3c查询:http://www.w3school.com.cn/xpath/xpath_functions.asp XPath 语法 选取节点 XPath 使用路径表达式在 XML 文档