java - 子树上的 xpath 搜索

标签 java xml xpath

我需要将 xpath 节点搜索限制为子树。我目前正在使用下面的方法,但无论我是给它我要搜索的文档还是节点,它都会搜索整个文档。

private NodeList findNodes(Object obj,String xPathString) throws ... {
    XPath xPath = XPathFactory.newInstance().newXPath();
    XPathExpression expression = xPath.compile(xPathString);
    return (NodeList) expression.evaluate(obj, XPathConstants.NODESET);
}

我现在使用的解决方案是创建新文档,附加节点并搜索新文档,然后合并。我想改进这一点。可以吗?

我使用的 XPath 是 //nodeName

最佳答案

您正在查看 // 轴,这意味着“文档根的任何后代节点”,

将其更改为 .// 轴(上下文节点的后代),它将按预期工作。

关于java - 子树上的 xpath 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8358994/

相关文章:

Java JaxB 生成,如何从我的 xsd 中获取 bigDecimal?

xpath - xpath-包含精确文本的元素,但减去兄弟元素?

python - 使用 Xpath 使用多个条件从 <head> 中的元标记中提取内容

python - 使用python中的selenium模块查找html页面中的元素

java - BeanUtils.setProperty 不适用于 boolean 值?

java - 启动应用程序时出现致命异常

java - 通过调用 java 方法在 XSLT 中合并多个 XML 源

java - 在 xpath 中使用 "ancestor"和相对路径

java - 使用 java、xml 和 spring 学习/实现 Web 服务的最佳书籍/教程

java - 无法将示例 XML 文件导入/转换为字符串以进行解析