Как получить NodeSet для метода define () в XPathExpression - для saxon 9.3 lib - PullRequest
1 голос
/ 15 июля 2011

я использую saxon lib 9.3 для извлечения XPath

следующий код возвращает список экземпляров TinyElementImpl -

 XPathEvaluator evaluator = new XPathEvaluator();
 XPathExpression exp = evaluator.createExpression("//a[matches(.,'#...#')]");
 List<Object> result = exp.evaluate(domSource);

Предыдущие версии, поддерживаемые методом оценки, как возвращение NodeSet

 exp.evaluate(domSource,XPathConstants.NODESET)

Есть ли в saxon 9.3 lib какой-нибудь эквивалент?

1 Ответ

0 голосов
/ 23 июля 2011

Извините, я пропустил этот вопрос. Если вы хотите быть уверенным в получении ответа на саксонский вопрос, спросите его в списке рассылки saxon-help или на форуме SourceForge.

Если ваш XPathEvaluator является net.sf.saxon.xpath.XPathEvaluator, то этот метод все еще присутствует в 9.3. Возможно, вы по ошибке создали экземпляр net.sf.saxon.sxpath.XPathEvaluator?

Еще одна путаница заключается в том, что я предполагаю, что domSource является экземпляром DOMSource, но в этом случае я ожидаю, что в результате будут добавлены узлы DOM, а не узлы Saxon TinyTree. Трудность заключается в том, что вы не показали достаточно своего кода.

Если вы хотите получить лучшие результаты от процессора Sathon XPath, я бы рекомендовал использовать интерфейс s9api, а не интерфейс JAXP, который ужасно сфокусирован на DOM и XPath 1.0.

...