XQuery
![]() |
![]() |
➪ XQuery hat eine ähnliche Aufgabe wie XSL, kommt aber vorrangig im Zusammenhang mit der Auswertung von XML-Dokumenten zum Einsatz, die in nativen XML-Datenbanken oder in relationalen Datenbanksystemen massenhaft abgespeichert sind.
Auf dieser Seite:Nachdem Sie wissen,
können Sie sich einer sehr interessanten Alternative zu XSL zuwenden, die ebenfalls auf XPath beruht und dessen Funktionsumfang bereithält: XQuery. XQuery ist eine der interessantesten und leistungsfähigsten funktionalen Computersprachen, die im Lauf der letzten Jahre entwickelt worden sind.
Um die Transformation von XML - XQuery - HTML zu verdeutlichen, nehmen Sie das bereits bekannte Beispiel:
<Personen>
<PERSON Nachname="Ratlos" Alter="30">
<Vorname>Rudi</Vorname>
<Vorname>Ralf</Vorname>
</PERSON>
<PERSON Nachname="Sorglos" Alter="39">
<Vorname>Siggi</Vorname>
</PERSON>
<PERSON Nachname="Sinnlos" Alter="29">
<Vorname>Susi</Vorname>
<Vorname>Sabine</Vorname>
</PERSON>
</Personen>
Nun möchte ich abermals (dieses Mal jedoch mit XQuery) ein HTML-Dokument erzeugen, in dem für jede PERSON ein eigener Absatz p definiert wird. In diesem Absatz soll der Inhalt des @Nachname stehen.
Eine XQuery-Datei können Sie mit dem Oxygen-XML-Editor über Datei|Neu erstellen.
Die erstellte XQuery-Datei ist zunächst leer. Um das erwartete Wunder zu vollbringen, übernehmen Sie diese Codezeilen in die Datei.
<html>
<body>
{
for $m in /Personen/PERSON return
<p>{data($m/@Nachname)}</p>
}
</body>
</html>
Durchgeführt wird die XQuery-Transformation von XML nach HTML ebenfalls mit einem sogenannten Prozessor. Auch hier arbeiten Sie zentral mit XPath, wobei $m eine temporäre Variable darstellt, die in diesem Fall die Liste aller PERSON-Elemente abarbeitet; in $m/@Nachname wird auf dessen Attribut Nachname zugegriffen. Das Ergebnis sieht so aus:
<html>
<body>
<p>Ratlos</p>
<p>Sorglos</p>
<p>Sinnlos</p>
</body>
</html>
wg / 13. April 2018
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
ᐊ SVG
ᐁ XQuery: Arbeiten mit XML-Input
ᐁ WHERE
ᐁ XQuery: WHERE und Nummerierung
ᐁ FLOWR
ᐁ XQuery: concat, union, intersect, except
ᐁ XQuery: Generierung von 3erGruppen
ᐁ XQuery: Arbeiten mit Namespaces und Funktionen
ᐅ XProc
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de