Was ist XQuery? / WHERE

WHERE

WHERE

Zur effizienten Speicherung sehr zahlreicher XML-Dokumente bieten sich sowohl native XML-Datenbanken als auch herkömmliche SQL-Datenbanken an, die das Abspeichern als XML-Dokument ermöglichen. Zur Auswertung der dort gelisteten XML-Dokumente innerhalb dieser Technologien kommt häufig XQuery zum Einsatz.

Der folgende XQuery-Aufruf gibt die Vornamen aller Menschen aus, die in Neustadt wohnen. Dabei werden die Vornamen mit Start- und Endetag ausgegeben.


<x>
  {
    for $x in /Orte/Ort
    where $x/name = "Neustadt"
    return
      $x/Mensch/vorname
  }
</x>

Der Aufruf $x/Mensch/vorname ergibt daher eine Node der Art <vorname>Hugo</vorname>, der Elementname wird also im Sinn eines OuterXML mit ausgegeben. Wenn wir nur den Textinhalt in eine selbst definierte Zielstruktur mappen möchten, bietet sich der folgende Ansatz an: <vn>{$m/vorname/text()}</vn>.


<erg>{
  for $m in //Mensch[idOrt = 2] 
  where $m/Gehalt < 400 
  return 
  <m>
    <vn>{$m/vorname/text()}</vn>
    <nn>{$m/name/text()}</nn>
    <wo>{$m/../name/text()}</wo>
  </m>}
</erg>

ergibt folgendes Resultat:


<erg>
  <m>
    <vn>Rudi</vn>
    <nn>Rhodos</nn>
    <wo>Darmstadt</wo>
  </m>
  <m>
    <vn>Ludwig</vn>
    <nn>Lustlos</nn>
    <wo>Darmstadt</wo>
  </m>
</erg>

wg / 4. Januar 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info2018@wilfried-grupe.de

www.wilfried-grupe.de/XQuery6.html