1. 程式人生 > >XPath語法簡介

XPath語法簡介

語法 匹配 表達式 描述 命名 dex 屬性節點 iso IT

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語法簡介