使用 XPath 篩選器
此元件定義了基於 XPath 的訊息篩選器。在內部,這些元件使用封裝了 AbstractXPathMessageSelector
實例的 MessageFilter
。
請參閱 篩選器 以取得更多詳細資訊。 |
要使用 XPath 篩選器,您至少必須透過宣告 xpath-expression
元素或透過參考 xpath-expression-ref
屬性中的 XPath 運算式來提供 XPath 運算式。
如果提供的 XPath 運算式評估為 boolean
值,則無需其他設定參數。但是,如果 XPath 運算式評估為 String
,則應設定 match-value
屬性,評估結果將與其進行比對。
match-type
有三個選項
-
exact
:對應於java.lang.String
上的equals
。底層實作使用StringValueTestXPathMessageSelector
-
case-insensitive
:對應於java.lang.String
上的equals-ignore-case
。底層實作使用StringValueTestXPathMessageSelector
-
regex
:比對java.lang.String
上的運算。底層實作使用RegexTestXPathMessageSelector
當提供 'regex' 的 'match-type' 值時,使用 match-value
屬性提供的值必須是有效的正規表示式。
以下範例顯示了 xpath-filter
元素的所有可用屬性
<int-xml:xpath-filter discard-channel="" (1)
id="" (2)
input-channel="" (3)
match-type="exact" (4)
match-value="" (5)
output-channel="" (6)
throw-exception-on-rejection="false" (7)
xpath-expression-ref=""> (8)
<int-xml:xpath-expression ... /> (9)
<int:poller ... /> (10)
</int-xml:xpath-filter>
1 | 您希望將拒絕的訊息傳送到的訊息通道。 選用。 |
2 | 底層 Bean 定義的 ID。 選用。 |
3 | 此端點的接收訊息通道。 選用。 |
4 | 在 XPath 評估結果和 match-value 之間套用的比對類型。預設值為 exact 。選用。 |
5 | 要與 XPath 評估結果比對的字串值。如果您未設定此屬性,則 XPath 評估必須產生布林值結果。 選用。 |
6 | 符合篩選條件的訊息要分派到的通道。 選用。 |
7 | 預設情況下,此屬性設定為 false ,且拒絕的訊息(那些不符合篩選條件的訊息)會被靜默丟棄。但是,如果設定為 true ,訊息拒絕會導致錯誤狀況,並且例外狀況會向上游傳播到呼叫者。 選用。 |
8 | 要評估的 XPath 運算式實例的參考。 |
9 | 此子元素設定要評估的 XPath 運算式。如果您未包含此元素,則必須設定 xpath-expression-ref 屬性。此外,您只能包含一個 xpath-expression 元素。 |
10 | 要與 XPath 篩選器搭配使用的 Poller。 選用。 |