基本语法:
- /:从根节点开始选择。
/bookstore
- //:选择匹配的节点,而不考虑其位置。
//book
- .:当前节点。
./title
- ..:父节点。
../author
- *:通配符,匹配任何元素节点。
/bookstore/*
谓词(Predicates):
- [@attribute='value']:选择具有特定属性值的节点。
/bookstore/book[@category='fiction']
- [position()]:选择特定位置的节点。
/bookstore/book[position()=1]
运算符:
- +, -, *, /, %:数值运算符。
/bookstore/book/price * 2
- =, !=, <, >, <=, >=:比较运算符。
/bookstore/book/price > 20
- and, or, not:逻辑运算符。
/bookstore/book/price > 20 and /bookstore/book/price < 30
轴(Axes):
- child:::子轴,选择当前节点的所有子元素。
/bookstore/child::book
- parent:::父轴,选择当前节点的父节点。
/bookstore/book/title/parent::book
- attribute:::属性轴,选择当前节点的所有属性。
/bookstore/book/attribute::category
- namespace:::命名空间轴,选择当前节点的所有命名空间节点。
/bookstore/book/namespace::*
- ancestor:::前代轴,选择当前节点的所有祖先节点。
/bookstore/book/title/ancestor::bookstore
- descendant:::后代轴,选择当前节点的所有后代节点。
/bookstore/descendant::title
- preceding-sibling:::同级轴,选择当前节点之前的所有同级节点。
/bookstore/book/title/preceding-sibling::book
- following-sibling:::同级轴,选择当前节点之后的所有同级节点。
/bookstore/book/title/following-sibling::book
一些函数:
- string(): 将节点的值转换为字符串。
string(/bookstore/book/price)
- concat(): 连接多个字符串。
concat(/bookstore/book/title, ' - ', /bookstore/book/author)
- contains(): 判断字符串是否包含指定子字符串。
contains(/bookstore/book/title, 'XML')
- count(): 计算节点集的节点数量。
count(/bookstore/book)
- sum(): 计算节点集中数值的总和。
sum(/bookstore/book/price)
这个备忘单涵盖了XPath的一些基本语法、运算符、轴和函数,可以作为使用XPath时的快速参考。
转载请注明出处:http://www.zyzy.cn/article/detail/12190/XML