Я пытаюсь создать древовидное представление из коллекции (файловой системы). К сожалению, в некоторых файлах есть специальные символы, такие как ü ä и ö. И я бы хотел, чтобы они были закодированы в HTML как ä
Когда я получаю их из переменной, они закодированы в URL. Сначала я декодирую их в UTF-8, а затем .... я не знаю, что делать дальше.
<li><a href="#">{util:unescape-uri($child, "UTF-8")}</a>
Функция util:parse
делает прямо противоположное тому, что я хочу.
Вот рекурсивная функция:
xquery version "3.0";
declare namespace ls="ls";
declare option exist:serialize "method=html media-type=text/html omit-xml-declaration=yes indent=yes";
declare function ls:ls($collection as xs:string, $subPath as xs:string) as element()* {
if (xmldb:collection-available($collection)) then
(
for $child in xmldb:get-child-collections($collection)
let $path := concat($collection, '/', $child)
let $sPath := concat($subPath, '/', $child)
order by $child
return
<li><a href="#">{util:unescape-uri($child, "UTF-8")}</a>
<ul>
{ls:ls($path,$sPath)}
</ul>
</li>,
for $child in xmldb:get-child-resources($collection)
let $sPath := concat($subPath, '/', $child)
order by $child
return
<li> <a href="javascript:loadPage('{$sPath}');">{util:unescape-uri($child, "UTF-8")}</a></li>
)
else ()
};
let $collection := request:get-parameter('coll', '/db/apps/ebner-online/resources/xss/xml')
return
<ul>{ls:ls($collection,"")}</ul>