German English

LOTS of XPath (Lsg)

Hinweis: Die Beispiellösungen können direkt im XQuery-Trainer ausprobiert werden. Als Hinweis ist die Gesamtzahl der Ergebnisse oder das direkte Ergebnis in Klammern angegeben. Bitte beachten Sie, dass der XQuery-Trainer nur maximal 30 Ergebnisse anzeigt. Um die Anzahl zu überprüfen (z.B. bei A1) müssen Sie daher die count-Funktion verwenden (z.B. count(doc(‘bib.xml’)/bib/biblioentry/@id) bei A1).

A1. Liste aller ids von Publikationen. (36 Ergebnisse)

doc('bib.xml')/bib/biblioentry/@id

oder

doc('bib.xml')//@id

A2. Liste sämtlicher Emailadressen. (1 Ergebnis: pv@springer.de)

doc('bib.xml')//email

A3. Liste der Titel aller Publikationen von Verlegern aus Berlin. (1 Ergebnis: Springers Mathematische Formeln)

doc('bib.xml')//title[../publisher//city = 'Berlin']

oder

doc('bib.xml')//biblioentry[publisher//city = 'Berlin']/title

A4. Liste der ids aller Publikationen, in deren (Unter-)Titel der Ausdruck “wissen” vorkommt. (1 Ergebnis: Rade97)

doc('bib.xml')/bib/biblioentry[contains(title, 'wissen') or contains(subtitle, 'wissen')]/@id

oder (ab XPath 2.0)

doc('bib.xml')//biblioentry[(title | subtitle)/.[contains(.,"wissen")]]/@id

A5. Liste aller Publikationen, die mehr als 10 Seiten umfassen. (25 Ergebnisse)

doc('bib.xml')//biblioentry[(pagenums/@end - pagenums/@start) > 9]/title

A6. Liste der Titel der Publikationen, an denen ein Autor beteiligt war, dessen Nachname mit ’W’ beginnt. (2 Ergebnisse: ‘Springers Mathematische Formeln’, ‘Panel: Is Generic Metadata Management Feasible?’)

doc('bib.xml')//biblioentry[.//author[starts-with(surname,'W')]]/title

oder

doc('bib.xml')//biblioentry/authorgroup/author[starts-with(surname,'W')]/../../title

Falsch:

doc('bib.xml')//biblioentry[starts-with(.//author/surname,'W')]/title

A7. Anzahl aller Publikationen. (36)

count(doc('bib.xml')//biblioentry)

A8. Liste aller Publikationen, die mehr als einen Autor haben. (32 Ergebnisse)

doc('bib.xml')//biblioentry[count(.//author) > 1]

A9. Liste aller Publikationen, die zwischen 2001 und 2003 erschienen sind. (11 Ergebnisse)

doc('bib.xml')//biblioentry[pubdate >= 2001 and pubdate <=2003]
Vorlesung | Wintersemester 2007/08