Я использую библиотеку apache JXPath для анализа XML. Я пытаюсь найти API в JXPath, который выполняет функцию, аналогичную оценке XPath, то есть проверяет, существует ли выражение xpath? Это похоже на линии
<xsl:when test="
при использовании xslt. Используя XPath я могу аналогичным образом сделать
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
InputSource source = new InputSource(new StringReader(xml));
status = xpath.evaluate("/resp/status/solution", source);
Если решение отсутствует, оно вернет статус как ноль.
Теперь, используя JXPath, я не могу изобразить API в похожих строках. Вот мой пример кода
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance ();
DocumentBuilder bld = dbfactory.newDocumentBuilder ();
Документ metaDoc = bld.parse (in);
JXPathContext metaCtx = JXPathContext.newContext (metaDoc);
Узел узла = (Узел) metaCtx.selectSingleNode ("/ resp / status / solution");
Это выдает «JXPathNotFoundException: Нет значения для xpath». Для реализации конкретной логики мне нужно поставить и блок if-else, если выражение не возвращает данные / не существует.
Любой указатель на это будет высоко оценен.
Спасибо