Мне нужно написать функцию, которая принимает последовательность элементов «тегов» вид:функции XQuery для преобразования элементов тегов к атрибутам
<tag type="markupType" value="topic"/>
<tag type="concept" value="death"/>
...
и превращает их в атрибуты формы
data-markupType="topic"
data-concept="death"
до сих пор у меня есть следующие функции:
declare function local:tagsToAttrs($tags as element()*) as attribute()*
{
for $tag in $tags
let $type := $tag/string(@type)
let $value := $tag/string(@value)
return
attribute { concat('data-', $type) } { $value }
};
Это работает нормально до сих пор, но мне нужно иметь дело Wi й случай, когда у меня есть два или более тега с тем же «типом». В этом случае у меня не может быть двух атрибутов с тем же именем, поэтому я хочу иметь один атрибут с пробелами, разделенными пробелами ...
например.
<tag type="concept" value="death"/>
<tag type="concept" value="life"/>
<tag type="concept" value="birth"/>
станет
data-concept="death life birth"
Я застрял на этом на некоторое время теперь - так что если кто-нибудь есть хороший способ модификации моей функции, чтобы сделать это, я бы очень признателен.
Заметка Pls Я не хочу использовать XSLT для этого. Я хочу использовать XQuery.
С наилучшими пожеланиями
Свами