когда XPathExpression.evaluate бросает? - PullRequest
2 голосов
/ 05 сентября 2011

Проходя через XPath.compile API, у меня сложилось впечатление, что он вернет действительный XPathExpression или бросок.

Действительно, не имеет смысла, чтобы какой-либо компилятор возвращал объект, который не является «работоспособным».

Поэтому я был немного удивлен, что действительный XPathExpression может все еще выдавать при evaluate документе, тем более что согласно его описанию

XPathExpressionException представляет ошибку в выражении XPath

Имеет ли это смысл? Может ли выражение compile d по-прежнему содержать ошибку?

1 Ответ

3 голосов
/ 05 сентября 2011

Статическая ошибка в выражении XPath (например, неправильный синтаксис XPath или ссылка на неопределенную функцию, переменную или пространство имен) вызовет ошибку из метода compile ().

Динамическая ошибкав выражении XPath сгенерирует исключение из методаvalu ().

XPath 1.0 разработан, чтобы иметь очень мало динамических ошибок.Примером этого может быть count (3), что является ошибкой, поскольку count () может применяться только к набору узлов.В XPath 2.0 возможно еще много динамических ошибок.

...