Попытка смоделировать функцию XQuery fn:idref(), но без схемы
Я хочу найти документ XML для элемента, который имеет idrefs
атрибут, содержащий определенный id
, Например, учитывая этот документ XML doc.xml
;
<doc>
<x1 idrefs="foo bar">
<x2 idrefs="world hello"/>
</x1>
<x3 idrefs="ipsum lepsum"/>
<a xml:id="bar"/>
<b xml:id="hello"/>
</doc>
Я хочу этот XQuery;
let $d := doc("doc.xml")
return $d/local:getref("hello")
вернуть этот элемент;
<x2 idrefs="world hello"/>
я полагаю, что fn:idref()
делает именно это, но только если doc.xml
имеет соответствующую схему. Можно ли это сделать без схемы?
Я использую процессор Saxon XQuery.
1 ответ
Решение
Похоже, это связано с
Как использовать функцию XQuery fn:idref()?
Без схемы вам нужно
//*[tokenize(@idrefs, ' ') = "hello"]