【问题标题】:search in collection with lowercase - xquery用小写字母在集合中搜索 - xquery
【发布时间】:2014-07-03 20:37:41
【问题描述】:

我正在寻找一种方法来搜索将节点元素与小写函数进行比较的集合。问题是我尝试过的方法不起作用:

这是我构建的一个非常简单的查询,但它没有返回任何内容:

let $valor2 := lower-case(request:get-parameter('valor2',''))
let $contribuciones := collection('final/contribuciones/')/Contribucion[lower-case(Aporte) = $valor2]

但是$contribuciones 似乎是空的

我认为 XML 在这个问题中并不重要,但这里有一个例子:

<Contribuciones>
   <Contribucion>
       <id> 1243243435 </id>
       <Aporte> something </Aporte>
   </Contribucion>
</Contribuciones>

我想要做的是接收一个参数并将其存储在一个变量中,然后在集合中搜索在元素中具有确切参数的节点(在本例中为 Aporte)忽略任何情况。

【问题讨论】:

  • 您是否检查过以确保count(collection('final/contribuciones/')/Contribucion) 不为0?
  • Aporte 元素真的包含围绕“某物”的空格吗?可能$valor2 不会。如果是这样,请将访问权限封装在 normalize-space(...) 中。
  • 是的,该集合返回 20 个节点,关于空间,这是一个错误,Aporte 元素中没有空格
  • 尝试将 valor2 转换为字符串。
  • $valor2 没问题,我不知道为什么,但 /Contribucion[lower-case(Aporte)] 是问题

标签: string xquery lowercase


【解决方案1】:

你的路径应该是

collection('final/contribuciones/')//Contribucion

collection() 函数返回文档节点,而不是每个文档的根元素。

【讨论】:

  • 这对我的情况没有影响,收集功能工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多