Java: come individuare un elemento tramite la stringa xpath su org.w3c.dom.document

Come si localizzano velocemente elementi / elementi tramite la stringa xpath su un determinato org.w3c.dom.document? non sembra esserci alcun metodo FindElementsByXpath() . Per esempio

 /html/body/p/div[3]/a 

Ho trovato che iterare ricorsivamente attraverso tutti i livelli del nodo figlio è abbastanza lento quando ci sono molti elementi con lo stesso nome. Eventuali suggerimenti?

Non posso usare alcun parser o libreria, devo lavorare solo con il documento dom w3c.

Prova questo:

 //obtain Document somehow, doesn't matter how DocumentBuilder b = DocumentBuilderFactory.newInstance().newDocumentBuilder(); org.w3c.dom.Document doc = b.parse(new FileInputStream("page.html")); //Evaluate XPath against Document itself XPath xPath = XPathFactory.newInstance().newXPath(); NodeList nodes = (NodeList)xPath.evaluate("/html/body/p/div[3]/a", doc, XPathConstants.NODESET); for (int i = 0; i < nodes.getLength(); ++i) { Element e = (Element) nodes.item(i); } 

Con il seguente file page.html :