設定作業
XML 路徑語言 (XPath) 支援設定作業 |
。
聯集 (|) 運算子
|
或聯集運算子可傳回其兩個運算元的聯集 (必須是節點集)。例如,//author | //publisher
可傳回節點集,其中結合了所有 //author
節點和所有 //publisher
節點。可一起鏈結多個聯集運算子以結合多個節點集。例如,//author | //publisher | //editor | //book-seller
傳回包含所有 //author
、//publisher
,//editor
和 //book-seller elements
的節點集。聯集運算子可保留文件順序且不會傳回重複項。
範例
運算式 | 代表意義 |
---|---|
|
包含目前內容中之 |
|
包含 |
|
包含 |
|
包含 |
範例
下列範例說明聯集運算子的效果。
XML 檔 (test.xml)
XSLT 檔 (test.xsl)
下列 XSLT 樣式表可選取其 a
屬性等於 2
的所有 <x>
項目,以及沒有屬性的 <x>
項目。
轉換會產生下列結果:
優先順序
下表顯示了布林值運算子與比較運算子的優先順序 (從最高優先順序到最低優先順序)。
優先順序 | 運算子 | 描述 |
---|---|---|
1 |
|
群組 |
2 |
|
篩選條件 |
3 |
|
路徑運算 |
4 |
|
比較 |
5 |
|
比較 |
6 |
|
聯集 |
7 |
|
布林值 not |
8 |
|
布林值 and |
9 |
|
布林值 or |
範例
下列範例說明以上列示的運算子優先順序效果。
XML 檔 (test.xml)
基本 XSLT 檔 (test.xsl)
我們將從使用這個基本 XSLT 檔開始,說明接下來所有的案例。
案例 0:測試執行
您可以將下列範本規則加入 XSLT 樣式表。
這個動作會產生與原始文件相同的 XML 文件,而不必使用 <?xml version="1.0"?>
處理指令。
下列案例顯示這個範本規則的不同撰寫方法。重點是顯示 XPath 運算子繫結至項目的順序。
案例 1:() 繫結緊密度高於 []
下列範本規則會從來源文件的所有 <y>
項目中,依照文件的順序選取第一個 <y>
項目。
結果如下所示:
<y>y31</y>
案例 2:[] 繫結緊密度高於 / 或 //
下列範本規則會選取位於其同層級之第一個項目的所有 <y>
項目。
結果如下所示:
<y>y31</y>
<y>y21</y>
<y>y11</y>
<y>y03</y>
案例 3:and、not
下列範本規則會選取沒有 <x>
子項目、具有 <x>
父項目和沒有任何屬性的所有 <x>
項目。
結果是含有子系的單一 <x>
項目,如下所示:
<x>
<y>y31</y>
<y>y32</y>
</x>
案例 4:or、and、not
下列範本規則會選取做為 <x>
項目子系,或者不是 <x>
項目之父代且沒有屬性的每一個 <x>
項目。
結果是含有下列 <x>
項目及其子系的節點集,如下所示:
案例 5:and、or、not
下列範本規則會選取做為 <x>
項目子系,但不是 <x>
項目之父代,或者沒有屬性的每個 <x>
項目。
結果是含有下列 <x>
項目及其子系的節點集,如下所示: