Я думаю, что вы сначала хотите сгруппировать книги по коду издателя и цене, например,
<Results>{
for $book in doc("../henry/Book.xml")//Book
group by $pubCode := $book/PublisherCode, $price := $book/Price
return
<group pubCode="{$pubCode}" price="{$price}">{$book/title}</group>
}</Result>
Затем вы хотите сформировать свои титульные пары для каждой группы, я думаю, используя функцию для этой помощи.
declare function local:pair($seq) {
(
if (exists(tail($seq)))
then
(tail($seq)!<Pair>"{ head($seq) }" - "{ . }"</Pair>,
local:pair(tail($seq))
)
else ()
)
};
так что с этим вы бы использовали
declare function local:pair($seq) {
(
if (exists(tail($seq)))
then
(tail($seq)!<Pair>"{ head($seq) }" - "{ . }"</Pair>,
local:pair(tail($seq))
)
else ()
)
};
<Results>{
for $book in doc("../henry/Book.xml")//Book
group by $pubCode := $book/PublisherCode, $price := $book/Price
return
local:pair($book/Title)
}</Result>