本文目录导读:

XPath(XML Path Language)是一种用于在XML文档中查找和定位节点的语言,以下是XPath查询XML节点的主要表达式和语法:
基本语法
节点选择
/ # 从根节点开始选择 // # 从任意位置选择节点 . # 当前节点 .. # 父节点 @ # 选取属性 * # 通配符,匹配任何元素节点 @* # 匹配任何属性节点
路径表达式示例
/bookstore # 选择根元素bookstore /bookstore/book # 选择bookstore下所有book子元素 //book # 选择所有book元素 //@lang # 选择所有名为lang的属性 /bookstore/book[1] # 选择第一个book元素 /bookstore/book[last()] # 选择最后一个book元素
谓语(条件筛选)
/bookstore/book[price>35] # 价格大于35的book /bookstore/book[price>35]/title # 价格大于35的book的标题 //book[@lang='en'] # lang属性为en的book //book[@lang] # 所有有lang属性的book /bookstore/book[position()<=3] # 前三个book元素
通配符
//* # 选择所有元素@*] # 有任意属性的title元素 //book/* # 所有book的子元素 //*[@price] # 有price属性的所有元素
运算符
比较运算符
= # 等于 != # 不等于 < # 小于 > # 大于 <= # 小于等于 >= # 大于等于
逻辑运算符
and # 逻辑与 or # 逻辑或 not() # 逻辑非
算术运算符
+ # 加法 - # 减法 * # 乘法 div # 除法 mod # 取模
常用函数
节点函数
text() # 选择文本节点 comment() # 选择注释节点 processing-instruction() # 选择处理指令 node() # 选择任意类型节点
字符串函数
contains(string1, string2) # string1包含string2 starts-with(string1, string2) # string1以string2开头 substring(string, start, len) # 获取子字符串 string-length(string) # 字符串长度 concat(str1, str2, ...) # 连接字符串 normalize-space(string) # 去除首尾空格
数值函数
number(value) # 转换为数值 sum(node-set) # 求和 floor(number) # 向下取整 ceiling(number) # 向上取整 round(number) # 四舍五入
布尔函数
true() # 返回true false() # 返回false not(boolean) # 取反 boolean(value) # 转换为布尔值
复杂查询示例
示例XML:
<bookstore>
<book category="cooking">lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
复杂查询表达式:
//book[price>20]/title # 价格大于20的book的title //book[contains(title, 'Harry')] # 标题包含Harry的book //book[starts-with(@category, 'c')] # category属性以c开头的book //book[year>2000 and price<30] # 2000年后且价格低于30的book //book[not(author='Unknown')] # 作者不是Unknown的book //book[price = //book[1]/price] # 与第一本书价格相同的所有书
轴(Axes)选择
ancestor::* # 所有祖先节点 child::* # 所有子节点 parent::* # 父节点 descendant::* # 所有后代节点 following-sibling::* # 后续兄弟节点 preceding-sibling::* # 前序兄弟节点 self::* # 当前节点 attribute::* # 所有属性
实用技巧
-
结合使用谓语和轴:
//book[price>20]/following-sibling::* # 价格大于20的book后的所有兄弟节点
-
使用多个条件:
//book[price>20 and @category='cooking']
-
查找特定文本:
//*[text()='Everyday Italian'] # 查找文本为"Everyday Italian"的元素 //*[contains(text(),'Italian')] # 查找包含"Italian"的文本节点
XPath是XML查询的强大工具,掌握这些基本表达式可以高效地从XML文档中提取所需数据。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播