XPath语法简介
Posted fugeny
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XPath语法简介相关的知识,希望对你有一定的参考价值。
XPath是一种在xml中查找信息的语言,具体可参考W3school XPath教程
XPath是以路径表达式来选择XML文档中的节点或节点集
===
XPath节点(Node)
在 XPath 中,XML 文档是被作为节点树来对待的,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore> (文档节点/根节点)
<book> (元素节点)
<title lang="en">Harry Potter</title> (元素节点,lang为属性节点,Harry Potter为文本节点)
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
节点关系
父(Parent),子(Children),同胞(sibling),先辈(Ancestor),后代(Descendant)
XPath语法
通过路径表达式来选取节点,语法如下表:
| 表达式 | 描述 | 案例 |
|------------- | -------------| --------------------|
|nodename | nodename节点下的所有子节点 | bookstore
选取bookstore的所有子节点 bookstore/book
选取bookstore下的所有book节点
|/ | 从根节点选取 | /bookstore
选取根元素 bookstore。 假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!|
|// | 从匹配选择的当前节点选择文档中同样的节点,而不考虑它们的位置 | bookstore//book
选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。|
|. | 选取当前节点 | .book
选择当前book节点|
|.. | 选取当前节点的父节点 |..book
选取book的父节点bookstore|
|@ | 选取属性 | //@lang
选取名为lang的所有属性|
此外,还可以通过谓语(Predicates)进行更为精准的选择,谓语写在[Predicates]
中,例如//title[@lang]
则是选择所有拥有名为 lang 的属性的 title 元素。
还可以用*
选择未知节点,用逻辑符号|
选取若干路径,具体可参考W3school
以上是关于XPath语法简介的主要内容,如果未能解决你的问题,请参考以下文章