XPath PART1

XPath

XPath即為XML路徑語言(XML Path Language)一種用來確定XML文檔中某部分位置的語言

XPath基於XML的樹狀結構,提供在資料結構樹中找尋節點的能力

起初 XPath 的提出的初衷是將其作為一個通用的、介於XPointer與XSL間的語法模型

但是 XPath 很快的被開發者採用來當作小型查詢語言。

 

軸描述語法

軸描述元表示XML文件分支樹表達式的瀏覽方向

列舉如下:

child (子節點:比自身節點深度大的一層的節點,且包含在自身之內)

 

attribute (屬性)

@

descendant-or-self (自身引用及子孫節點)

//

parent (父節點:比自身節點深度小一層的節點,且需要包含自身的節點)

.. 例如:

ancestor (祖先節點:比自身節點深度小的節點,且需要包含自身的節點)


ancestor-or-self (自身引用及祖先節點)


self (自己)

. 例如:


節點測試

comment() 

尋找XML註釋節點,例如<!-- 註釋 -->

text() 

尋找某點的文字型別,例如hello於<k>hello</k>

processing-instruction() 

尋找XML處理指令如<?php echo $a; ?>。在這個例子裡,將符合processing-instruction('php')會傳回值。

node() 

尋找所有點



節點描述

節點描述為一個邏輯真假表達式,任何真假判斷表達式都可在節點後方括弧裡表示

這條件必須在XPath處理這個節點前先被滿足。在某一步驟可有多少個描述並沒有限制。

範例如下

 //a[@href='help.php'], 這將檢查 a 元素有沒有 href 屬性,並且該它的值是 help.php

 //a[@href='help.php'][../div/@class='header']/@target 將會選擇符合條件的 a 元素的 target 屬性

符合要求 a 元素有 href 屬性且值為 help.php;並且 a 元素有父輩 div 元素,其自身有 class 屬性,值為 header