XQuery и отдельные значения

У меня есть этот XML:

<university>
<departaments>
    <departament sl="AA">
        <subject>Numbers</subject>
        <categories>
            <categorie>
                <name type="one">Mathematics</name>
            </categorie>
            <categorie>
                <name type="one">Physics</name>
            </categorie>
            <categorie>
                <name type="two">Other</name>
            </categorie>
        </categories>
    </departament>
    <departament sl="BB">
        <subject>Letters</subject>
        <categories>
            <categorie>
                <name type="one">Philosophy</name>
            </categorie>
            <categorie>
                <name type="two">Language</name>
            </categorie>
            <categorie>
                <name type="two">Other</name>
            </categorie>
        </categories>
    </departament>
</departaments>
</university>

И мне нужно получить имена с его атрибутами, упорядоченные по длине и без дубликатов имен. То есть этот xml:

<name type="two">Other</name>
<name type="one">Physics</name>
<name type="two">Language</name>
<name type="one">Philosophy</name>
<name type="one">Mathematics</name>

У меня есть этот код, но он не работает.

for $name in distinct-values(doc ("uni.xml")//categorie/name)
order by string-length($name)
return $name

Кто-нибудь может мне помочь?

Заранее спасибо.


person Saturno    schedule 12.04.2015    source источник


Ответы (1)


Пытаться:

for $name in distinct-values(doc("uni.xml")//categorie/name)
order by string-length($name)
return (doc("uni.xml")//categorie/name[.=$name])[1]
person Michael Kay    schedule 12.04.2015
comment
Огромное спасибо - person Saturno; 12.04.2015
comment
Протокол StackOverflow заключается не в том, чтобы отвечать в комментарии, а просто в том, чтобы пометить ответ как принятый, щелкнув галочку на поле. Это полезно для людей, которые приходят позже с подобным вопросом, чтобы они знали, что ответ работает. (Это также дает ответчику очки репутации, о которых некоторые члены SO, похоже, очень заботятся). - person Michael Kay; 12.04.2015