[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:
路径表达式:                                                                                   
ExpressionDescription
nodenameSelects 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 ExpressionResult
bookstoreSelects all nodes with the name "bookstore"
/bookstoreSelects the root element bookstore

Note: If the path starts with a slash ( / ) it always represents an absolute path to an element!

bookstore/bookSelects all book elements that are children of bookstore
//bookSelects all book elements no matter where they are in the document
bookstore//bookSelects all book elements that are descendant of the bookstore element, no matter where they are under the bookstore element
//@langSelects 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 ExpressionResult
/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]/titleSelects 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节点。
                             
WildcardDescription
*Matches any element node
@*Matches any attribute node
node()Matches any node of any kind

示例:                                             
Path ExpressionResult
/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 ExpressionResult
//book/title | //book/priceSelects all the title AND price elements of all book elements
//title | //priceSelects all the title AND price elements in the document
/bookstore/book/title | //priceSelects all the title elements of the book element of the bookstore element AND all the price elements in the document

TAG:

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 13028
  • 日志数: 32
  • 图片数: 1
  • 建立时间: 2019-01-22
  • 更新时间: 2019-08-08

RSS订阅

Open Toolbar