【发布时间】:2021-07-23 11:35:36
【问题描述】:
我有一个从文本中返回段落的函数。因此,我将<anchor> 标签的属性编号(@n)与<notes> 标签的属性编号进行比较,如果相同,我想用工具提示打印它,如果不是,我只想打印出段落。
declare function letter:text_trans($node as node(), $model as map(*))
{
let $resource := collection('/db/apps/Tobi-oshki/data')
for $ab in $resource//tei:div[@type="translation"]/tei:ab
for $note in $resource//tei:div[@type="notes"]/tei:note
return
if (data($note/@n) eq data($ab/tei:anchor/@n))
then
<div class="tooltip">{$ab}
<span class="tooltiptext"> {data($note/@n)}.{$note}</span>
</div>
else
<p> {$ab} </p>
};
在<notes> 中,我有三个注释,当它在注释上循环时,每个段落都会返回三次。
如何更改它以便它只返回一次段落?
我正在使用xquery version "3.1";
【问题讨论】:
-
我在提供的脚本中没有看到对
<notes>节点的引用(似乎对原始问题的一些编辑使得在这方面不太清楚@mads-hansen)。虽然我们可以看到您的输入 XML 可能很复杂,但如果没有输入的最小示例,很难正确解决您的问题。