Не удается правильно отобразить текст xml в XQuery
У меня есть файл XML, и мне нужно отобразить текст в HTML в eXist-db с помощью XQuery. В тексте каждое слово должно иметь комментарий с помощью функции наведения, что я уже сделал. Проблема в том, что в XML-файле у меня есть теги для абзаца (тег ab), для слова (тег rs), но у меня также есть буквы пунктуации или некоторые другие слова или некоторые части слов, которые находятся за пределами тега rs. Вот фрагмент XML-файла:
<ab>
<rs type="pers" key="66">[7125.5]მე</rs>,
<rs type="pers" key="511">ტო[7125.1]ბი</rs>,
<rs type="pers" key="510">გზათა</rs>
<rs type="pers" key="367">ჭტ͠ბისათ</rs>
<rs type="pers" key="509">ვიდ</rs>
<supplied reason="lost">ო</supplied>
და
<rs type="pers" key="513">სიმ͠რთლისათა</rs>
<supplied reason="lost">
<rs type="pers" key="523">ყოველთა</rs>
<rs type="pers" key="763">დღეთა</rs>
<rs type="pers" key="1509">ცხორებისა</rs>
</supplied>
<rs type="pers" key="417">ჩ͠მისათა</rs>,
და.
</ab>
и это мой код, как я генерирую текст
declare function letter:text_orig($node as node(), $model as map())
{
let $resource := collection('/db/apps/Tobi-oshki/data')
for $ab in $resource//tei:div[@type="original"]/tei:ab
for $item in tokenize($ab)
return
<p>
{
for $rs in $ab//tei:rs
let $note := $resource//tei:div[@type="notes"]/tei:note[@n = $rs//tei:anchor/@n]
return
if ($item eq $rs) then
if(data($rs/@key)) then
if ($note) then
<span data-toggle="tooltip" data-placement="top"
title="{letter:text_lem(data($rs/@key))} note: {data($note/@n)}.{$note} "> {$rs/data()} </span>
else
<span data-toggle="tooltip" data-placement="top"
title="{letter:text_lem(data($rs/@key))} "> {$rs/data()} {" "}</span>
else
()
else
$item
}
};
Итак, в коде, который я получаю, я перебираю абзацы и возвращаю абзацы с помощью
элементы. внутри этого цикла я перебираю слова и перебираю каждый элемент, который есть в абзаце. Я подумал, что если бы я сравнил слова (тег $ rs = rs) и каждый элемент в тексте ($item - который содержит все), я бы напечатал слово и комментарии, и если бы они не были равны, я бы также распечатал потерянные элементы, такие как "," но цикл работает некорректно, он печатает только элемент $item и несколько раз.
Я хочу отобразить весь текст, но мне также нужно получить тег rs, чтобы добавлять к нему комментарии, а также не терять другие символы, у которых нет комментариев и которых нет в теге rs. Надеюсь, объяснение понятно. Ключевой элемент - просто найти комментарии, относящиеся к словам,