使用Xpath在文档中查找节点

时间:2012-05-03 05:56:20

标签: java dom xpath

我有一个来自Node theFinalNode的{​​{1}}由Document解析器解析,我有来自完全相同页面的另一个文档,它以不同方式解析,我想找到节点在使用sax2dom的其他文档中,所以我尝试制作此代码:

Xpath

但似乎没有合适的构造函数用于我上面提到的方式。对此有什么解决方案吗?

错误

     private Node node;
 Node theFinalNode;
............

Document document = builder.parse(someURL);
 XPath xpath = XPathFactory.newInstance().newXPath();
 node =  xpath.evaluate(document,theFinalNode, XPathConstants.NODE);

编辑:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: javax.xml.xpath.XPath.evaluate

现在错误是:

i changed last line into:`     node =  (Node) xpath.evaluate("//" + theFinalNode.getNodeName(),document, XPathConstants.NODE);

1 个答案:

答案 0 :(得分:0)

您在XPath.evaluate()

中使用的参数存在问题

第一个参数必须是xpath表达式(String),第二个参数是上下文,最后一个是返回类型。 因此,您可以将xpath表达式作为第一个参数来检测您的节点(即"//" + theFinalNode.getNodeName()),并将第二个参数作为您要搜索节点的文档。