xml - 计算XML元素中不区分大小写的某些单词的出现

标签 xml xpath xquery basex

以下是XML文件的结构-

<Datas>
  <Data>
    <Name>Information</Name>
    <Desc>Today is Monday, the starting day of the week.</Desc>
  </Data>
  <Data>
    <Name>Stackoverflow.com</Name>
    <Desc>Yesterday 1200 questions were posted. <b>TODAY</b>, till now 1300 questions are posted. So, today will be an important day for all the senior members.</Desc>
  </Data>
</Datas>


在上面的XML中,我想计算单词today的出现。该单词可以采用任何格式,例如-TodaytodayTODAYtoDay。最后一个是不正确的,但是如果用户类型是这样,就不要错过它。

我正在使用查询-

count(/Datas/Data[contains(translate(Desc,'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY'), 'TODAY')])

结果是2,但是总共有3个!如何包括所有?

最佳答案

如果您使用的是BaseX(记得我记得的话),则可以使用非标准的ft:count,这会使生活变得更加轻松。

ft:count(//*[text() contains text "today"])


另一个好处是该查询将能够使用全文本索引,这比为每个查询标记文档要快得多。切记设置全文索引时不要大写。

关于xml - 计算XML元素中不区分大小写的某些单词的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11823033/

相关文章:

javascript - 如何将 Array.from 与 XPathResult 一起使用?

css - 当元素出现在其上方时,Chrome 渐变会改变颜色

xml - 两个大列表的高效映射

regex - 如何使用 XQuery 中的 replace() 函数替换一个或多个空白字符?

java - 循环遍历所有节点并更新Java中的值

android - 为什么框架布局没有正确绘制 z 索引?

python - 如何使用 XPath 选择一个单选按钮,后跟文本?

xml - Xquery:获取前一周的天数

java - XPATH 仅选择第一级子级

java - 使用 DOM 生成的 XML 未格式化