XPath 简单语法
2008-04-01 18:13
471 查看
XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.
XPath 通过路径表达式从XML文档中选取节点或节点集。该节点是通过其后的一条语句或相应的步骤选取的。
The XML Example Document
XML 案例文档
We will use the following XML document in the examples below.
我们将在接下来的案例中引用下面这个XML文档:
Selecting Nodes
选取节点
XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:
XPath使用路径表达式在XML文档中选取节点。该节点是通过其后的一条语句或相应的步骤选取的。下面列出了最常用的路径表达式:
Examples
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们罗列了一些路径表达式及其运行的结果:
Predicates
条件
Predicates are used to find a specific node or a node that contains a specific value.
它指定了选取节点的范围。
Predicates are always embedded in square brackets.
通常使用方括号[ ]来指定条件。
Examples
实例
In the table below we have listed some path expressions with predicates and the result of the expressions:
在下述表格中,我们列举了一些路径表达式及其运行结果:
Selecting Unknown Nodes
选取未知节点
XPath wildcards can be used to select unknown XML elements.
可以通过 XPath 通配符选取未知的XML元素。
Examples
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们列出了一些路径表达式及其运行结果:
Selecting Several Paths
选取多个路径
By using the | operator in an XPath expression you can select several paths.
你可以同过在表达式中添加“ | ”操作符来选取多个路径。
Examples
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们列举了一些路径表达式及其运行结果:
XPath 通过路径表达式从XML文档中选取节点或节点集。该节点是通过其后的一条语句或相应的步骤选取的。
The XML Example Document
XML 案例文档
We will use the following XML document in the examples below.
我们将在接下来的案例中引用下面这个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> |
选取节点
XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:
XPath使用路径表达式在XML文档中选取节点。该节点是通过其后的一条语句或相应的步骤选取的。下面列出了最常用的路径表达式:
Expression 表达式 | Description 注释 |
nodename | Selects all child nodes of the node 选取某节点中的所有子节点 |
/ | Selects from the root node 从根节点处选取 |
// | Selects nodes in the document from the current node that match the selection no matter where they are 选取文档中所有匹配的节点,不管该节点位于何处 |
. | Selects the current node 选取当前节点 |
.. | Selects the parent of the current node 选取当前节点的父节点 |
@ | Selects attributes 选取属性 |
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们罗列了一些路径表达式及其运行的结果:
Path Expression 表达式 | Result 结果 |
bookstore | Selects all the child nodes of the bookstore element 选取bookstore元素的所有子节点 |
/bookstore | Selects the root element bookstore 选取以bookstore元素为根目录的点 Note: If the path starts with a slash ( / ) it always represents an absolute path to an element! 注意:如果一个路径以(/)开始,那么它代表该元素的绝对路径! |
bookstore/book | Selects all book elements that are children of bookstore 选取bookstore中的所有book子元素 |
//book | Selects all book elements no matter where they are in the document 选取文档中的所有book元素 |
bookstore//book | Selects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element 选取文档中所有处于bookstore节点下的book元素 |
//@lang | Selects all attributes that are named lang 选取所有指定的lang属性 |
条件
Predicates are used to find a specific node or a node that contains a specific value.
它指定了选取节点的范围。
Predicates are always embedded in square brackets.
通常使用方括号[ ]来指定条件。
Examples
实例
In the table below we have listed some path expressions with predicates and the result of the expressions:
在下述表格中,我们列举了一些路径表达式及其运行结果:
Path Expression 表达式 | Result 结果 |
/bookstore/book[1] | Selects the first book element that is the child of the bookstore element 选取bookstore元素下的第一个book元素 |
/bookstore/book[last()] | Selects the last book element that is the child of the bookstore element 选取bookstore元素下的最后一个book元素 |
/bookstore/book[last()-1] | Selects the last but one book element that is the child of the bookstore element 选取bookstore元素下的倒数第二个book元素 |
/bookstore/book[position()<3] | Selects the first two book elements that are children of the bookstore element 选取bookstore元素下的前两个book子元素 |
//title[@lang] | Selects all the title elements that have an attribute named lang 选取所含指定的lang属性的有包title元素 |
//title[@lang='eng'] | Selects all the title elements that have an attribute named lang with a value of 'eng' 选取所有lang属性值为“eng”的所有“title”元素 |
/bookstore/book[price>35.00] | Selects all the book elements of the bookstore element that have a price element with a value greater than 35.00 选取bookstore元素下所有price元素值大于35.00的book元素 |
/bookstore/book[price>35.00]/title | Selects all the title elements of the book elements of the bookstore element that have a price element with a value greater than 35.00 选取bookstore元素下所有price元素值大于35.00的book节点下的title元素 |
选取未知节点
XPath wildcards can be used to select unknown XML elements.
可以通过 XPath 通配符选取未知的XML元素。
Wildcard 通配符 | Description 说明 |
* | Matches any element node 匹配任意的元素节点 |
@* | Matches any attribute node 匹配任意的属性节点 |
node() | Matches any node of any kind 匹配所有类型的节点 |
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们列出了一些路径表达式及其运行结果:
Path Expression 表达式 | Result 结果 |
/bookstore/* | Selects all the child nodes of the bookstore element 选取bookstore元素中的所有子节点 |
//* | Selects all elements in the document 选取文档中的所有元素 |
//title[@*] | Selects all title elements which have any attribute 选取包含任意属性的所有title元素 |
选取多个路径
By using the | operator in an XPath expression you can select several paths.
你可以同过在表达式中添加“ | ”操作符来选取多个路径。
Examples
案例
In the table below we have listed some path expressions and the result of the expressions:
在下述表格中,我们列举了一些路径表达式及其运行结果:
Path Expression 表达式 | Result 结果 |
//book/title | //book/price | Selects all the title AND price elements of all book elements 选取book元素中的所有title和price元素 |
//title | //price | Selects all the title AND price elements in the document 选取文档中的所有title元素和price元素 |
/bookstore/book/title | //price | Selects all the title elements of the book element of the bookstore element AND all the price elements in the document 选取bookstore元素中book元素所对应的所有title元素以及文档中所有的price元素 |