gpt4 book ai didi

java - 当 false 不是 XML 中的字段时,XQuery 返回 "false"?

转载 作者:行者123 更新时间:2023-11-29 04:38:23 25 4
gpt4 key购买 nike

我有以下 XML:

<personDetails>
<person>
<name>Mr Test</name>
<paid>Yes</paid>
<details>
<detail>
<id>12345</id>
<address>15 Sample Street</address>
</detail>
</details>
</person>
</personDetails>

我试图在给定特定名称和 ID 时返回 paid 的值。返回的值为“false”,这是不正确的,甚至在我的 XML 中也不存在。

我当前的查询/Java 方法是否正确?

当前查询:

//personDetails/person[name='Mr Test'] and //personDetails/person/details/detail[id ='S0335171']/paid/text()

当前方法:

public String getPaidByNameAndId(String name, String id) {
final String _Name = name;
final String _id = id;
return engine.new Query<String>(PERSON_COLLECTION) {

@Override
protected String query(Collection collection) throws Exception {
XQueryService service = queryService();

ResourceSet resourceSet = service.query(
format("//personDetails/person[name='%s'] and //personDetails/person/details/detail[id ='%s']" +
"/paid/text()"
, StringEscapeUtils.escapeXml(_Name),
StringEscapeUtils.escapeXml(_id)
));

for (String resource : new IterableStringResources(resourceSet)) {
results.add(resource);
}
return results.get(0);
}
}.execute();
}

作为引用,我使用的 xQueryService 是:

org.exist.xmldb.XQueryService;

最佳答案

您的整个 XPath/XQuery 确实返回了一个 boolean 值(使用 运算符组合的两个值)。根据您的解释,正确的 XPath/XQuery 是:

//personDetails/person[name='Mr Test' and details/detail[id ='S0335171']]/paid/text()

xpath demo

关于java - 当 false 不是 XML 中的字段时,XQuery 返回 "false"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40282750/

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