2011-09-05 1 views
3

XPath.compile API를 살펴보면 유효한 XPathExpression을 반환하거나 던질 것이라는 인상을 받았습니다.언제 XPathExpression.evaluate가 throw됩니까?

실제로 컴파일러가 '실행 가능'이 아닌 객체를 반환한다는 것은 의미가 없습니다.

그러므로 나는

XPathExpressionException는 XPath 식의 오류를 나타냅니다, 특히는 설명이다에 따라 이후 유효한 XPathExpression여전히 던져 evaluate이 문서를 보내고 있음을 조금 놀랐습니다

그게 의미가 있습니까? compile d 표현식에 여전히 오류가 있습니까?

답변

4

XPath 식의 정적 오류 (예 : 잘못된 XPath 구문 또는 정의되지 않은 함수, 변수 또는 네임 스페이스에 대한 참조)는 compile() 메서드에서 오류를 반환합니다.

XPath 식의 동적 오류는 evaluate() 메서드에서 예외를 throw합니다.

XPath 1.0은 동적 오류가 거의 발생하지 않도록 설계되었습니다. 예를 들어 count (3)는 count()가 노드 집합에만 적용될 수 있기 때문에 오류입니다. XPath 2.0에는 더 많은 동적 오류가 가능합니다.

관련 문제