第376章 XPath 言語


Camel バージョン 1.1 以降で利用可能

Camel は XPath をサポートして、式または述語を DSL または Xml 設定 で使用できるようにします。たとえば、XPath を使用して、メッセージフィルター で述語を作成したり受信者リストの式として使用したりできます。

ストリーム

メッセージボディーがストリームベースの場合、受信した入力はストリームとして Camel に送信されます。つまり、ストリームのコンテンツを 一度 だけ読み取ることができます。そのため、XPathMessage Filter またはコンテンツベースのルーターとして使用する場合に、データに複数回アクセスする必要があることが頻繁にあります。そのため、ストリームキャッシングを使用するか、メッセージボディーを安全に複数回再読み取りできる String に変換する必要があります。

from("queue:foo").
  filter().xpath("//foo")).
  to("queue:bar")
from("queue:foo").
  choice().xpath("//foo")).to("queue:bar").
  otherwise().to("queue:others");

376.1. XPath 言語オプション

XPath 言語は、以下に示す 9 個のオプションをサポートしています。

名前デフォルトJava タイプ説明

documentType

 

String

ドキュメントタイプのクラスの名前。デフォルト値は org.w3c.dom.Document です

resultType

NODESET

String

結果タイプ (出力からのタイプ) のクラス名を設定します。デフォルトの結果タイプは NodeSet です

saxon

false

Boolean

Saxon を使用するかどうか。

factoryRef

 

String

レジストリーを検索するためのカスタム XPathFactory を参照します

objectModel

 

String

使用する XPath オブジェクトモデル

logNamespaces

false

Boolean

トラブルシューティング時に役立つ名前空間をログに記録するかどうか

headerName

 

String

メッセージボディーの代わりに入力として使用するヘッダーの名前

threadSafety

false

Boolean

xpath 式の返された結果に対してスレッドセーフを有効にするかどうか。これは、NODESET を結果の型として使用し、返されたセットに複数の要素がある場合に適用されます。この状況で、並列処理モードの Camel Splitter EIP などから NODESET を同時に処理すると、スレッドセーフの問題が発生する可能性があります。このオプションは、ノードの防衛的コピーを実行して、同時実行の問題を防ぎます。アプリケーションで camel-saxon または Saxon を使用している場合は、このオプションをオンにすることを推奨します。Saxon には、このオプションをオンにすることで防止できるスレッドセーフの問題があります。

trim

true

Boolean

値をトリミングして、先頭および末尾の空白と改行を削除するかどうか

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.