gpt4 book ai didi

java - Xpath 返回空元素对象

转载 作者:行者123 更新时间:2023-12-01 15:51:57 24 4
gpt4 key购买 nike

我有一个 xml 文档作为字符串,没有任何命名空间,我想使用 Java、JDOM 和 XPath 解析它,并创建一个对象树。由于 XPAth 总是需要前缀和命名空间来查询,因此我将命名空间和前缀添加到根,然后添加到我想要获取的节点,但我看到 Xpath 在文档中的每个节点中都需要命名空间,但仅在根中.

那么一开始有没有办法将命名空间添加到文档对象中的所有元素,以便我的 xpath 查询正确工作?

代码中还应该存在其他错误和错误的方法。任何想法都会很高兴。

String response="myXmlString"
ByteArrayInputStream stream = new ByteArrayInputStream(
response.getBytes());
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(stream);
org.jdom.Element request=(org.jdom.Element) doc.getRootElement();
request.setNamespace(Namespace.getNamespace("myNamespace"));

createRequest(request);

然后

public Request createRequest(Element requestXML) {              
Request request = new Request();
requestXML.detach();
Document doc = new Document(requestXML);
XPath xpath = XPath.newInstance(myExpression);
xpath.addNamespace("m", doc.getRootElement().getNamespaceURI());

xpath.selectSingleNode(doc);

}

最后一行返回空,它不为 null,但内部抛出 jdom 异常。

最佳答案

XPath 和 XML 不需要命名空间。返回原始 XML 并删除代码中的任何命名空间/前缀黑客行为。

关于java - Xpath 返回空元素对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5847898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com