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 - 从变量中获取唯一值的主要内容,如果未能解决你的问题,请参考以下文章
从片段中获取意图值后,我如何在 recyclerview 项目中实现单击