java - 使用 JDom 的 XPath

标签 java jdom xpath

在下面的代码中,我尝试使用 XPath 访问我的“处理程序”XML 元素,但我没有运气 - “elemHandler”元素始终为 null。有人可以与我分享明显的解决方案吗?提前致谢。

import java.io.IOException;
import java.io.StringReader;

import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

public class XPathTest {
    private static String jobString = "<job name=\"Workflow.JOB\">" + 
                                           "  <handler name=\"xslt.converter\"/>" +
                                           "  <handler name=\"openoffice.renderer\">" +
                                           "    <opts input=\"ODS\" output=\"PDF\"/>" +
                                           "  </handler>" +
                                           "</job>";

    public static void main(String[] args) {
    try {
        Element elemJobInfo = new SAXBuilder().build(new StringReader(jobString)).detachRootElement();
        XPath handlerExpression = XPath.newInstance("//stp:handler[2]");
        handlerExpression.addNamespace("stp", "http://service.mine.org/dgs");
        Element elemHandler = (Element) handlerExpression.selectSingleNode(elemJobInfo);
        jobString = elemHandler.toString();
    }
    catch (IOException e) {
        System.out.println("Failure: " + e);
    }
    catch (JDOMException e) {
        System.out.println("Failure: " + e);
    }
    catch (Exception e) {
        System.out.println("Failure: " + e);
    }
}
}

最佳答案

stp 命名空间怎么了? jobString 中的 XML 不引用任何命名空间。您尝试过不带前缀吗?

//handler[2]

关于java - 使用 JDom 的 XPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326942/

相关文章:

当我设置 Progress-Indicator.setVisible(true) 时,Javafx Progress-Indicator 不显示

java - 由于底层的 SQLBrite,无需使用 toList() 即可组合两个可观察对象

java - JDOM 正在使用太多内存

java - 我如何监控 Java 中的 XML 解析(使用 JDOM)?

php - DOMDocument/Xpath 在长时间的命令行过程中泄漏内存 - 任何解构此类的方法

java - 如何使用 Java 设计模式对一些 XPath 函数进行编程

java - 使用 JSF 和 PrimeFaces 进行自适应轮询

java - Kotlin 单元测试变量声明 Lateinit、Lazy、可为 null 与不可为 Null

java - 如何在java中解析soap字符串

python-3.x - 如何在匹配的元素集中选择元素 xpath