[XQuery] Gebruik van concatenatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Sinds kort ben ik bezig met het beheersen van XQuery. Dit gaat mij als beginner redelijk goed af. Ik vraag mij nu alleen af hoe ik de concatenatie-functie van XQuery kan gebruiken. Ik heb de volgende XML:

<boek>
<titel>Boek 1</titel>
<hoofdstuk>
<schrijver>A</schrijver>
<paragraaf>Eerste paragraaf</paragraaf>
<paragraaf>Tweede paragraaf</paragraaf>
</hoofdstuk>
<hoofdstuk>
<schrijver>B</schrijver>
<paragraaf>Eerste paragraaf</paragraaf>
</hoofdstuk>
</boek>

Nu wil ik graag een concatenatie van alle schrijvers, het liefst gescheiden door een karakter (bijvoorbeeld ' - '). Dit hoort er dus als volgt uit te zien: "A - B".

Ik heb het volgende en heb het idee dat ik redelijk in de buurt zit:

let $bibliotheek = doc("boeken.xml")
for $b in $bibliotheek/boek/hoofdstuk/schrijver/string()
return concat($b)

Dit blijkt echter nog steeds fout te zijn. Kan iemand mij hier misschien bij helpen?

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
http://en.wikibooks.org/wiki/XQuery/Displaying_Lists

Dus string-join() gebruiken, geen for nodig. :)

offtopic:
Gebruik [code]-tags

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pedorus schreef op maandag 08 februari 2010 @ 15:02:
http://en.wikibooks.org/wiki/XQuery/Displaying_Lists

Dus string-join() gebruiken, geen for nodig. :)

offtopic:
Gebruik [code]-tags
Super, het werkt. Bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bestaat er ook een manier die een bepaald element selecteert zonder daarbij de kinder-elementen mee te nemen (terwijl deze er wel zijn)?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
De wedervraag is dan wat je wel terug wil hebben. Wel node-naam (node-name of name()), attributen (@*), comments (comment()), processing-instructions (processing-instruction()) en tekstwaardes (text()), maar geen kind-elementen(*)? En in welke context zou je dit nodig hebben dan?

Je kan een element constructor gebruiken zoals hier:
http://en.wikibooks.org/wiki/XQuery/Filtering_Nodes

Verder lijkt het me niet zo nuttig om hier een 'kleine-XQuery-vraagjes' topic van te maken, het is vast handiger om een boek door te nemen. ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pedorus schreef op maandag 08 februari 2010 @ 17:14:
De wedervraag is dan wat je wel terug wil hebben. Wel node-naam (node-name of name()), attributen (@*), comments (comment()), processing-instructions (processing-instruction()) en tekstwaardes (text()), maar geen kind-elementen(*)? En in welke context zou je dit nodig hebben dan?

Je kan een element constructor gebruiken zoals hier:
http://en.wikibooks.org/wiki/XQuery/Filtering_Nodes

Verder lijkt het me niet zo nuttig om hier een 'kleine-XQuery-vraagjes' topic van te maken, het is vast handiger om een boek door te nemen. ;)
Ik ben op zoek naar het element, inclusief attributen.

Ik begrijp dat er ook bepaalde axis functies zijn (self::). Hiermee krijg ik het echter ook niet voor elkaar.

Ik begrijp dat het nuttiger is om een boek door te nemen. Dit zal ik ook zeker doen :-).

[ Voor 6% gewijzigd door Verwijderd op 08-02-2010 17:48 ]

Pagina: 1