У меня есть DOM Document (org.w3c.dom), но я должен быть в состоянии найти элементы по XPath и тому подобное.Какой парсер или библиотека может предоставить эту функцию?
Document
org.w3c.dom
http://download.oracle.com/javase/6/docs/api/javax/xml/xpath/package-summary.html
В конце страницы даже приведен пример использования XPath для документа DOM:
// parse the XML as a W3C Document DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = builder.parse(new File("/widgets.xml")); XPath xpath = XPathFactory.newInstance().newXPath(); String expression = "/widgets/widget"; Node widgetNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
Если у вас уже есть Document, то вам не нужны парсеры, так как XML уже проанализирован.
Существует пакет javax.xml.xpath , который обеспечивает функциональность XPath.
javax.xml.xpath
Моя предпочитаемая xpath библиотека - jaxen. Это простой в использовании и мощный. Пример использования (отложенные исключения):
xpath
jaxen
List<Node> matchingNodes = new DOMXPath("//myxpath").selectNodes(document);
http://www.ibm.com/developerworks/library/x-javaxpathapi.html
НТН