32.4. Cryostat 빌더
32.4.1. 개요
org.apache.camel.builder.xml.XPathBuilder
클래스를 사용하면 exchange와 독립적으로 Cryostat 표현식을 평가할 수 있습니다. 즉, 모든 소스의 XML 조각이 있는 경우 Cryostat Builder
를 사용하여 XML 조각에서 Cryostat 표현식을 평가할 수 있습니다.
32.4.2. 일치하는 표현식
matches()
메서드를 사용하여 지정된 Cryostat 표현식과 일치하는 하나 이상의 XML 노드를 찾을 수 있는지 확인합니다. Cryostat Builder
를 사용하여 Cryostat 식과 일치하는 기본 구문은 다음과 같습니다.
boolean matches = XPathBuilder .xpath("Expression") .matches(CamelContext, "XMLString");
여기서 지정된 식인 Expression 은 XML 조각, XMLString, 결과가 true와 일치하는 하나 이상의 노드가 발견되면 true에 대해 평가됩니다. 예를 들어 다음 예제에서는 true
를 반환하는데, 이는 Cryostat 표현식이 xyz
특성에서 일치하는 항목을 찾기 때문에 true를 반환합니다.
boolean matches = XPathBuilder .xpath("/foo/bar/@xyz") .matches(getContext(), "<foo><bar xyz='cheese'/></foo>"));
32.4.3. 표현식 평가
evaluate()
메서드를 사용하여 지정된 Cryostat 표현식과 일치하는 첫 번째 노드의 내용을 반환합니다. Cryostat Builder
를 사용하여 Cryostat 식을 평가하는 기본 구문은 다음과 같습니다.
String nodeValue = XPathBuilder .xpath("Expression") .evaluate(CamelContext, "XMLString");
필요한 형식을 evaluate()
의 두 번째 인수로 전달하여 결과 유형을 지정할 수도 있습니다. 예를 들면 다음과 같습니다.
String name = XPathBuilder .xpath("foo/bar") .evaluate(context, "<foo><bar>cheese</bar></foo>", String.class); Integer number = XPathBuilder .xpath("foo/bar") .evaluate(context, "<foo><bar>123</bar></foo>", Integer.class); Boolean bool = XPathBuilder .xpath("foo/bar") .evaluate(context, "<foo><bar>true</bar></foo>", Boolean.class);