375장. 시행일 수 있습니다.
Camel 버전 1.1에서 사용 가능
Camel은 DSL 또는 Xml Configuration 에서 Expression 또는 Predicate를 사용할 수 있도록 XPath 를 지원합니다. 예를 들어 XPath를 사용하여 메시지 필터에서 또는 받는 목록에 대한 식으로 표시를 만들 수 있습니다.For example, you could use XPath to create an Predicate in a Message Filter or as an Expression for a Recipient List.
스트림
메시지 본문이 스트림을 기반으로 하면 수신하는 입력이 Camel에 스트림으로 제출됨을 의미합니다. 즉, 스트림의 내용을 한 번 만 읽을 수 있습니다. 따라서 README를 메시지 필터 또는 콘텐츠 기반 라우터로 사용하는 경우 종종 데이터에 여러 번 액세스해야 하며 Stream Caching을 사용하거나 메시지 본문을 여러 번 다시 읽을 수 있는 이전 문자열로 변환해야 합니다. ???
from("queue:foo"). filter().xpath("//foo")). to("queue:bar")
from("queue:foo"). choice().xpath("//foo")).to("queue:bar"). otherwise().to("queue:others");
375.1. XPath 언어 옵션
XPath 언어는 아래 나열된 9 가지 옵션을 지원합니다.
이름 | 기본값 | Java Type | 설명 |
---|---|---|---|
documentType |
| 문서 유형의 클래스 이름: 기본값은 org.w3c.dom.Document입니다. | |
resultType |
|
| 결과 형식의 클래스 이름을 (출력에서 유형) 기본 결과 유형은 NodeSet입니다. |
saxon |
|
| Saxon 사용 여부 |
factoryRef |
| 레지스트리에서 조회할 사용자 정의 XPathFactory에 대한 참조 | |
objectModel |
| 사용할 XPath 개체 모델 | |
logNamespaces |
|
| 문제 발생 시 지원할 수 있는 네임스페이스를 로깅할지 여부 |
headerName |
| 메시지 본문 대신 입력으로 사용할 헤더 이름 | |
threadSafety |
|
| xpath 식의 반환된 결과에 대해 스레드 보호 기능을 사용할지 여부입니다.Whether to enable thread- protection for the returned result of the xpath expression. 이는 결과 유형으로 NODESET을 사용할 때 적용되며 반환된 세트에 여러 요소가 있습니다. 이러한 상황에서 Camel Splitter EIP의 병렬 처리 모드에서와 같이 NODESET을 동시에 처리하는 경우 스레드 안전 문제가 발생할 수 있습니다. 이 옵션은 노드의 방어 사본을 수행하여 동시성 문제를 방지합니다. 애플리케이션에서 camel-saxon 또는 Saxon을 사용하는 경우 이 옵션을 켜는 것이 좋습니다. Saxon에는 스레드 안전 문제가 있으므로 이 옵션을 켜서 방지할 수 있습니다. |
trim |
|
| 선행 공백과 후행 공백과 줄 바꿈을 제거할 값을 조정할지 여부입니다. |