我正在使用Java 6.正如问题所述,我将如何编写一个带有org.w3c.dom.Element和xpath字符串的方法,并返回一个匹配的org.w3c.dom.Elements列表,假设有没有?
如果它通过解析XHTML文档来帮助获取所有元素。
编辑:根据给出的建议,我尝试了
final XPathFactory factory = XPathFactory.newInstance();
final XPath xpath = factory.newXPath();
final NodeList result = (NodeList) xpath.evaluate(xpathStr, rootElement, XPathConstants.NODESET);
其中我的xpathStr是“// div [contains(@ class,'listing')] / h3 // a [1] / span / text()”但是,结果是返回与整个父文档匹配的xpath ,而不仅仅是“rootElement”Element对象中的内容。我已经验证了rootElement对象不包含其HTML中返回的一些结果。
答案 0 :(得分:2)
以下是关于该主题的好文章:http://www.ibm.com/developerworks/library/x-javaxpathapi/
使用XPathFactory创建XPath,然后使用xpath.evaluate("expression", contextNode, NODESET)获取匹配元素列表。
contextNode是“给定元素”,因此从该起点开始计算的任何XPath表达式都将为该元素提供属于(“within”)后代的元素,具体取决于它们使用的轴。