您可以利用「語法參照」選項來指定 XPath 表示式的運算子和位置路徑。運算子可用來操作數值、組合路徑,以及比較字串或數值。位置路徑說明 XML 文件中節點及節點群組的位置。
位置路徑有兩種不同的類型 - 絕對和相對。絕對路徑以固定的參照點,也就是根節點開始;而相對路徑則以可變的點,即環境定義節點開始。
位置路徑會傳回一個節點集,亦即一組節點(XML 文件的任何部分,如元素、屬性或註解)的集合。位置路徑由位置階級組成。每一步驟都有兩個部分:
位置階級外觀如下:
axis: node-test
位置階級可利用以正斜線分隔的方式來加以合併。產生的位置路徑中的每一個階級均設定階級中下一個路徑的環境定義節點。
如果要存取「語法參照」選項,請在 XPath 表示式精靈中按一下參照標籤。
每一個 XPath 位置階級都會從環境定義節點沿著軸的方向來移動。比方說,如果您選取 child 作為軸,XPath 表示式便會搜尋環境定義節點中的所有子項。
軸 | 搜尋節點的位置 |
---|---|
ancestor:: | 根節點以及包含環境定義節點的所有元素節點。 |
ancestor-or-self :: | 環境定義節點的所有上代,以及該節點本身。 |
attribute:: | 環境定義節點的所有屬性。 |
child:: | 環境定義節點的所有子項。雖然屬性和名稱空間節點有母節點,但它們並非任何節點的子項。 這是預設值。 |
descendant:: | 包含在環境定義節點中的所有節點,也就是所有子項或子項的子項,依此類推。只有根和元素節點有後代。 後代軸和子軸一樣,一律不含屬性或名稱空間節點。 |
descendant-or-self:: | 環境定義節點的所有後代或環境定義節點本身。 |
following:: | 從環境定義節點後面開始的所有節點,但不包括屬性節點和名稱空間節點。 |
following-sibling:: | 在環境定義節點後面具有同一個母節點的所有節點。屬性和名稱空間節點沒有同級節點。 |
namespace:: | 環境定義節點上範圍內的所有名稱空間。 |
parent:: | 直接包含環境定義節點的元素或根節點。只有根節點沒有母節點。 |
preceding:: | 在環境定義節點開頭處前結束的所有節點,但不包括屬性節點和名稱空間節點。 |
preceding-sibling:: | 環境定義節點開頭前面具有同一個母節點的所有節點。屬性和名稱空間節點沒有同級節點。 |
self:: | 環境定義節點本身。 |
每一個位置階級至少都有一個軸和一個節點測試。節點測試會進一步修正位置階級所選的節點。比方說,如果您指定 child:: comment() 作為位置階級,XPath 表示式便會傳回環境定義節點的所有註解節點子項。
節點 | 傳回內容 |
---|---|
* | 選取所有元素,不論其稱為何。例如,child::* 會選取環境定義節點的所有元素子項,而 attribute::* 則會選取環境定義節點的所有屬性。 |
comment ( ) | 所有註解節點。 |
node( ) | 所有節點,不論其類型為何。 |
processing-instruction ('target' ) | 如果沒有引數,它會傳回所有的處理指示。如果有單一字串引數 target,則會選取具有指定目標的所有處理指示。 |
text( ) | 所有文字節點。例如,child::text() 會選取環境定義節點的所有文字節點子項。 |
節點集
運算子 | 功能 |
---|---|
| | 這是聯集運算子。它會取得兩個節點集,並將節點集的所有節點全部合併在一起(在移除重複節點之後)。 |
/ | 選取所有的子節點。 |
// | 選取後代節點。 |
Boolean
Boolean 運算子可用來比較字串或數值表示式或 Boolean 值。
運算子 | 傳回 |
---|---|
<= | 如果第一個數值表示式的值小於或等於第二個的值,就是 true,否則是 false。 |
< | 如果第一個數值表示式的值小於第二個的值,就是 true,否則是 false。 |
>= | 如果第一個數值表示式的值大於或等於第二個的值,就是 true,否則是 false。 |
> | 如果第一個數值表示式的值大於第二個的值,就是 true,否則是 false。 |
= | 如果兩個表示式(字串或數值)具有相同的值,則為 True,否則為 false。 |
!= | 如果兩個表示式(字串或數值)沒有相同的值,就是 true,否則是 false。 |
以及 | 如果兩個 Boolean 值都是 true,則為 True,否則為 false。 |
或 | 只有在兩個值都是 false 時才是 false,否則是 true。 |
數字
下列運算子可用來操作數值。
運算子 | 傳回 |
---|---|
+ | 兩個數值表示式的總和。 |
- | 第一個數值表示式減去第二個的差。 |
* | 兩個數值表示式的乘積。 |
div | 第一個數值表示式除以第二個表示式。 |
mod \ | 以第一個數值除以第二個數值,傳回得出的餘數。 |