BASEX - 从变量中获取唯一值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BASEX - 从变量中获取唯一值相关的知识,希望对你有一定的参考价值。

我正在尝试为数据库中使用的标题创建所有不同前缀的列表。标题作为内容文本存储在xml标记中(与属性相对)。

提取了所有标题后,我想创建一个唯一前缀列表(标题本身是描述符,而不是唯一标识符)。

我已经到了每个标题都有前缀的地步。我现在要做的是删除双打,只留下一个简短的唯一值列表。

我尝试过使用distinct-values(),但在我看来,这是在原始标题(即标签的内容)上运行,而不是在我创建的变量上运行。

我也试过转换成和数组,但这不会产生我想要的结果。

for $name in db:open('DUMMYDATABASE')//body
let $new := $name/mytitle
let $thetitles :=  array { tokenize(replace($new, 's', ''), '-')[1] }
let $result := <thing>{distinct-values($names)}</thing>

return $result

我想做的是从这样的事情:

<tag>con.text1</tag>
<tag>sub.text1</tag>
<tag>con.text2</tag>
<tag>sub.text2</tag>
<tag>para.text</tag>
<tag>super.text</tag>

可迭代的东西,如“con”,“sub”,“para”,“super”

以便我以后能够迭代该序列来查找文档。

答案

这应该会让你走得很远:

distinct-values(//body/tag/tokenize(., '.')[1])

适用时

<body>
  <tag>con.text1</tag>
  <tag>sub.text1</tag>
  <tag>con.text2</tag>
  <tag>sub.text2</tag>
  <tag>para.text</tag>
  <tag>super.text</tag>
</body>

它导致四个值:'con', 'sub', 'para', 'super'

以上是关于BASEX - 从变量中获取唯一值的主要内容,如果未能解决你的问题,请参考以下文章

未定义变量上的BaseX XQJ API错误,而变量已定义

从片段中的json获取值

从片段中获取意图值后,我如何在 recyclerview 项目中实现单击

片段中的 notifyDataSetChanged() 不刷新列表视图

如何从“活动”中的“编辑”文本中获取值并将其用于片段?

如何从核心数据中获取唯一字段值(song_type)