gpt4 book ai didi

java - Xquery 正在返回一组元素的结果而不是其他元素?

转载 作者:数据小太阳 更新时间:2023-10-29 02:07:53 24 4
gpt4 key购买 nike

我有以下 XML:

<Details>
<Detail>
<name>Detail one</name>
<id>001</id>
</Detail>
<Detail>
<name>Detail two</name>
<id>002</id>
</Detail>
</Details>

我通过名称查询这个以使用 XQuery 服务和 Java 方法获取 ID:

 public String getIdByName(String detailName) {
final String detail_Name = detailName;
return engine.new Query<String>(DETAILS_COLLECTION) {

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

ResourceSet resourceSet = service.query(
format("//Details/Detail[name='%s']" +
"/id/text()"
, StringEscapeUtils.escapeXml(detailName)

));

List<String> ids = newArrayList();

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

此方法正确返回此 XML 部分的 ID,名称为“Detail one”:

<Detail>
<name>Detail one</name>
<id>001</id>
<Detail>

返回名称为“Detail two”的第二个值:

<Detail>
<name>Detail two</name>
<id>002</id>
</Detail>

这可能是什么原因造成的?

最佳答案

您的代码看起来没有任何错误,因此我怀疑您的输入。您可以在运行查询之前尝试对其进行清理:

"//Details/Detail[name=fn:normalize-space('%s')]" 

但是,这只会解决空格问题。您仍然需要确保没有拼写错误或意外的标点符号。

关于java - Xquery 正在返回一组元素的结果而不是其他元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40552330/

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