gpt4 book ai didi

java - 从 org.w3c.dom.Document 创建的 dom4j 文档中的 XPath 评估无法按预期工作

转载 作者:行者123 更新时间:2023-11-29 05:40:37 24 4
gpt4 key购买 nike

我正在尝试使用 dom4j 1.6.1 通过 XPath 遍历以下文档。我正在寻找 <query> 的号码元素。

<?xml version="1.0" encoding="UTF-8"?>
<reportLineageResponse>
<querySet expressionLocale="en-us">
<queries xmlns="http://developer.cognos.com/schemas/report/9.0/">
<query name="Top 10 Sales Staff List"/>
<query name="Top 10 Sales Staff by Quantity List"/>
<query name="Sales Figures America Region Combination Chart"/>
</queries>
</querySet>
</reportLineageResponse>

这是调用 dom4j 的代码。

int numberOfQueries(org.w3c.dom.Document jaxpDocument) {
DOMReader domReader = new DOMReader();
org.dom4j.Document document = domReader.read(jaxpDocument);

Map<String, String> nsMap = Collections.singletonMap("rep", "http://developer.cognos.com/schemas/report/9.0/");
XPath queryXp = document.createXPath("/reportLineageResponse/querySet/rep:queries/rep:query")
queryXp.setNamespaceURIs(nsMap);
List<Node> queries = queryXp.selectNodes(document);
return queries.size();
}

我正确指定了命名空间,但我得到了 0 个结果。可能是什么问题?


编辑:如果我在创建后查看 dom4j.Document,它的 namespace 是错误的:

<?xml version="1.0" encoding="UTF-8"?>
<reportLineageResponse>
<querySet expressionLocale="en-us">
<queries xmlns="http://developer.cognos.com/schemas/report/9.0/">
<query xmlns="" name="Top 10 Sales Staff List"/>
<query xmlns="" name="Top 10 Sales Staff by Quantity List"/>
<query xmlns="" name="Sales Figures America Region Combination Chart"/>
</queries>
</querySet>
</reportLineageResponse>

编辑:这里是创建 org.w3c.dom.Document 的代码:

Document loadDocument(URL url) {
InputStream stream = url.openStream();
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document result = docBuilder.parse(stream);
stream.close();
return result;
}

最佳答案

按如下方式更改您的 xml 加载:

DocumentBuilderFactory docBuilderFactor = DocumentBuilderFactory.newInstance();
docBuilderFactor.setNamespaceAware(true);
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();

关于java - 从 org.w3c.dom.Document 创建的 dom4j 文档中的 XPath 评估无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17752218/

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