Hallo,
ich habe eine Aufgabe bekommen. Ich weiß aber nicht so recht wie ich diese angehen soll. Es geht darum eine XQuery-Funktion zu schreiben, die feststellt, ob es sich um die erste oder letzte Karte in einem XML Dokument handelt. Eingabe soll das das Kartenelement und der Name des XML-Dokuments sein.
Ich habe mal ein wenig rumgebastelt und erst mal versucht überhaupt die erste Karte heraus zu bekommen, das funktioniert aber auch nicht so recht.
declare function local:EintragBestimmen($karte as element()) as xs:string{
for $e in doc("Kasten.xml")//Karte
return
{if ($karte =$e[1]) then "erste Karte" else
if ($karte=$e[position()=last()]) then "letzte Karte"
else "weder erste noch letzte Karte"}
};
local:EintragBestimmen(doc("Kasten.xml")//Karte[1])
Kasten.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Kartenkasten>
<Karte>
<Stichwort>XQuery</Stichwort>
<Sachgebiet>Datenbank</Sachgebiet>
<Abstract>Gutes Referenzwerk in Deutsch</Abstract>
<Inhalt Typ="S">
<Titel>XQuery</Titel>
<Autor>Lehnert</Autor>
<Link>http://www.oreilly.de/</Link>
</Inhalt>
</Karte>
<Karte>
<Stichwort>SQL</Stichwort>
<Sachgebiet>Datenbank</Sachgebiet>
<Abstract>Ein Buch über Datenbanken</Abstract>
<Inhalt Typ="S">
<Titel>SQL Kurz und gut</Titel>
<Autor>Jonathan Gennick</Autor>
<Link>http://www.oreilly.de/</Link>
</Inhalt>
</Karte>
<Karte>
<Stichwort>Java</Stichwort>
<Sachgebiet>Programmierung</Sachgebiet>
<Abstract>Programmierung mit Java für Anfänger</Abstract>
<Inhalt Typ="I">
<Titel>Java ist auch eine Insel</Titel>
<Autor>Christian Ullenboom</Autor>
<Link>http://openbook.galileocomputing.de/javainsel8/</Link>
</Inhalt>
</Karte>
</Kartenkasten>
ich habe eine Aufgabe bekommen. Ich weiß aber nicht so recht wie ich diese angehen soll. Es geht darum eine XQuery-Funktion zu schreiben, die feststellt, ob es sich um die erste oder letzte Karte in einem XML Dokument handelt. Eingabe soll das das Kartenelement und der Name des XML-Dokuments sein.
Ich habe mal ein wenig rumgebastelt und erst mal versucht überhaupt die erste Karte heraus zu bekommen, das funktioniert aber auch nicht so recht.
declare function local:EintragBestimmen($karte as element()) as xs:string{
for $e in doc("Kasten.xml")//Karte
return
{if ($karte =$e[1]) then "erste Karte" else
if ($karte=$e[position()=last()]) then "letzte Karte"
else "weder erste noch letzte Karte"}
};
local:EintragBestimmen(doc("Kasten.xml")//Karte[1])
Kasten.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Kartenkasten>
<Karte>
<Stichwort>XQuery</Stichwort>
<Sachgebiet>Datenbank</Sachgebiet>
<Abstract>Gutes Referenzwerk in Deutsch</Abstract>
<Inhalt Typ="S">
<Titel>XQuery</Titel>
<Autor>Lehnert</Autor>
<Link>http://www.oreilly.de/</Link>
</Inhalt>
</Karte>
<Karte>
<Stichwort>SQL</Stichwort>
<Sachgebiet>Datenbank</Sachgebiet>
<Abstract>Ein Buch über Datenbanken</Abstract>
<Inhalt Typ="S">
<Titel>SQL Kurz und gut</Titel>
<Autor>Jonathan Gennick</Autor>
<Link>http://www.oreilly.de/</Link>
</Inhalt>
</Karte>
<Karte>
<Stichwort>Java</Stichwort>
<Sachgebiet>Programmierung</Sachgebiet>
<Abstract>Programmierung mit Java für Anfänger</Abstract>
<Inhalt Typ="I">
<Titel>Java ist auch eine Insel</Titel>
<Autor>Christian Ullenboom</Autor>
<Link>http://openbook.galileocomputing.de/javainsel8/</Link>
</Inhalt>
</Karte>
</Kartenkasten>
Comment