给定一个org.w3c.dom.Element,如何在给定xpath字符串的情况下找到一个Element?

时间:2012-03-22 19:01:27

标签: java xml xpath

我正在使用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中返回的一些结果。

1 个答案:

答案 0 :(得分:2)

以下是关于该主题的好文章:http://www.ibm.com/developerworks/library/x-javaxpathapi/

使用XPathFactory创建XPath,然后使用xpath.evaluate("expression", contextNode, NODESET)获取匹配元素列表。

contextNode是“给定元素”,因此从该起点开始计算的任何XPath表达式都将为该元素提供属于(“within”)后代的元素,具体取决于它们使用的轴。