比較
若要比較 XPath 中的兩個物件,請使用 =
符號來測試是否相等,或使用 !=
測試是否不相等。
若是比較運算,必須確定只提供兩個運算元。接下來評估每個運算元以進行比較,再視需要予以轉換,讓它們擁有相同的型別。這個動作會根據下述<比較優先順序>中的處理程序執行。
所有項目和屬性都是字串,但對於數字比較,則會自動轉換成整數值。在比較運算期間,常值數值會轉換成 long 或 double 型別,如下表所示。
如需有關 <
及其他二進位比較運算子的詳細資訊,請參閱底下的<二進位比較運算子>。
常值型別 | 比較 | 範例 |
---|---|---|
String |
|
|
Integer |
|
|
Real |
|
|
可在運算式中將單引號或雙引號當作字串分隔符號。這會使得從指令碼語言中建構和傳遞模式變得更加容易。
如需如何使用 XPath 執行比較的詳細資訊,請參閱 XML 路徑語言 (XPath) 1.0 版<W3C 建議事項 1999 年 11 月 16 日>(英文) 的第 3.4 節<布林值>,其位於 www.w3.org/TR/xpath。
範例
運算式 | 代表意義 |
---|---|
|
至少包含一個 |
|
其第一個 |
|
包含 |
|
包含 |
|
其字串值為 |
比較優先順序
與資料型別相關的比較會遵循優先順序。
若至少有一個運算元是布林值,則會先將每一個運算元轉換成布林值。
否則,若至少有一個運算元是數字,則會先將每一個運算元轉換成數字。
否則,若至少有一個運算元是日期,則會先將每一個運算元轉換成日期。
否則,會先將兩個運算元轉換成字串。
二進位比較運算子
一組二進位比較運算子會比較數字並傳回布林值結果。<
、<=
、>
和 >=
運算子分別用於小於、小於或等於、大於,以及大於或等於。可在運算式中將單引號或雙引號當作字串分隔符號。這會使得在指令碼語言中建構和傳遞模式變得更加容易。
請注意,這些比較運算子僅適用於數字。您可以比較字串是否相等,但是如果您想要比較字串來決定哪一個會在排序順序中先出現,您必須使用 Microsoft XPath 擴充程式函式。
範例
運算式 | 代表意義 |
---|---|
|
內含 |
|
包含不等於 |
|
XML 檔中的前三個 |
範例
XML 檔 (test.xml)
XSLT 檔 (test.xsl)
下列 XSLT 樣式表會選取其為文件順序中同層級之第一個項目的所有 <x>
項目。
格式化輸出
以上的 XML 檔轉換會產生下列結果:
<x a="1">
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
</x>
<x a="2" b="B">
<x>
<y>y31</y>
<y>y32</y>
</x>
</x>
<x>
<y>y31</y>
<y>y32</y>
</x>