Java:如何通过org.w3c.dom.document上的xpathstring来定位元素

如何通过给定的org.w3c.dom.document上的xpathstring快速定位元素/元素? 似乎没有FindElementsByXpath()方法。 例如

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

当发现有很多同名的元素时,我发现迭代遍历所有的子节点级别会很慢。 有什么build议么?

我不能使用任何parsing器或库,只能使用w3c dom文档。

尝试这个:

 //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.getDocumentElement(), XPathConstants.NODESET); for (int i = 0; i < nodes.getLength(); ++i) { Element e = (Element) nodes.item(i); } 

使用以下page.html文件:

 <html> <head> </head> <body> <p> <div></div> <div></div> <div><a>link</a></div> </p> </body> </html>