共用方式為


篩選條件與篩選條件模式 (XPath)

藉由將篩選條件子句 [pattern] 加入至集合,可將限制和分支套用至任何集合。 篩選條件類似於 SQL WHERE 子句。 篩選條件內含稱為「篩選條件模式」的模式。 會將篩選條件模式評估為布林值,並且會針對集合的每個項目進行測試。 結果集合將略過無法通過篩選條件模式測試之集合的任何項目。

為了方便起見,若將集合放在篩選條件內部,則當集合包含任何成員時,就會產生布林值 TRUE;若集合為空白,則產生 FALSE。 如果存在含子項目 <degree> 的 <author> 項目,運算式 (例如 author/degree) 就會隱含執行評估為 TRUE 的「集合至布林值」轉換函式。

請注意,運算式的指定層級可出現任意數量的篩選條件。 不允許空的篩選條件。

系統必定會根據內容評估篩選條件。 換言之,運算式 book[author] 會測試每個找到的 <book> 項目是否有 <author> 子項目。 同樣地,book[author = 'Bob'] 會測試每個找到的 <book> 項目是否具有值 Bob 的 <author> 子項目。 使用句點 (.) 字元也可以檢查內容的值。 例如,book[. = 'Trenton'] 會測試在目前內容中找到的每本書籍值是否為 Trenton。

範例

運算式

代表意義

book[excerpt]

至少包含一個 <excerpt> 項目的所有 <book> 項目。

book[excerpt]/title

在 <book> 項目內,至少包含一個 <excerpt> 項目的所有 <title> 項目。

book[excerpt]/author[degree]

至少包含一個 <degree> 項目,且在 <book> 項目內部至少包含一個 <excerpt> 項目的所有 <author> 項目。

book[author/degree]

至少包含一個 <author> 項目 (其中至少有一個 <degree> 子項目) 的所有 <book> 項目。

book[excerpt][title]

至少包含一個 <excerpt> 項目和至少一個 <title> 項目的所有 <book> 項目。

請參閱

參考

XPath 範例

概念

XPath 的 XML 檔範例語法 (inventory.xml)