[XPath] XPath Syntax
上一篇 /
下一篇 2019-08-08 11:01:20 / 天气: 晴朗
/ 心情: 平静
/ 个人分类:网站建设
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文档中的节点或节点集。通过一个路径或steps(??)来选择节点。
一 XML示例文档
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title lang="en">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="en">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
二 节点选择
The most useful path expressions are listed below:
路径表达式:
Expression | Description |
---|
nodename | Selects all nodes with the name "nodename" |
/ | 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 nodes with the name "bookstore" |
/bookstore | Selects the root element 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 |
//book | Selects all book elements no matter where they are in the document |
bookstore//book | Selects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element |
//@lang | Selects all attributes that are named lang |
三 Predicates(断言??)
Predicates are used to find a specific node or a node that contains a specific value.
Predicates用来寻找一个特殊的节点,或者寻找含有特殊值的节点。
Predicates are always embedded in square brackets.
Predicates一直被封装在方括号中[]。
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. Note: In IE 5,6,7,8,9 first node is[0], but according to W3C, it is [1]. To solve this problem in IE, set the SelectionLanguage to XPath: In JavaScript. xml.setProperty("SelectionLanguage","XPath"); |
/bookstore/book[last()] | Selects the last book element that is the child of the bookstore element |
/bookstore/book[last()-1] | Selects the last but one book element that is the child of the bookstore element |
/bookstore/book[position()<3] | Selects the first two book elements that are children of the bookstore element |
//title[@lang] | Selects all the title elements that have an attribute named lang |
//title[@lang='en'] | Selects all the title elements that have a "lang" attribute with a value of "en" |
/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/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 |
四 选择未知节点(Selecting Unknown Nodes)XPath通配符可用于选择未知的XML节点。
Wildcard | Description |
---|
* | Matches any element node |
@* | Matches any attribute node |
node() | Matches any node of any kind |
示例:
Path Expression | Result |
---|
/bookstore/* | Selects all the child element nodes of the bookstore element |
//* | Selects all elements in the document |
//title[@*] | Selects all title elements which have at least one attribute of any kind
|
五 选择多条路径(Selecting Several Paths)By using the | operator in an XPath expression you can select several paths.
在XPath表达式中使用"|"连接符,可以选择多条路径。
示例:
Path Expression | Result |
---|
//book/title | //book/price | Selects all the title AND price elements of all book elements |
//title | //price | Selects all the title AND price elements in the document |
/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 |
收藏
举报
TAG: