Was ist XQuery? / XQuery: Arbeiten mit XML-Input

XQuery: Arbeiten mit XML-Input

XQuery: Arbeiten mit XML-Input

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.

Das folgende XQuery-Beispiel listet via XPath alle XML-Elemente "Ort" auf und transformiert sie in "Stadt"-Elemente. Dabei wird aus dem ursprünglichen Childnode "id" ein Attribut "id".


<erg>
{
  for $o in /Orte/Ort
  return 
    <Stadt id="{$o/id/text()}">     
      {$o/name}
    </Stadt>
}
</erg>

Das Resultat:


<erg>
  <Stadt id="1">
    <name>Neustadt</name>
  </Stadt>
  <Stadt id="2">
    <name>Darmstadt</name>
  </Stadt>
  <Stadt id="3">
    <name>Kapstadt</name>
  </Stadt>
</erg>

Aus Gründen syntaktischer Korrektheit habe ich hier direkt auf den text()-Inhalt zugegriffen, obwohl auch ein Aufruf <Stadt id="{$o/id}"> zu einem korrekten Ergebnis geführt hätte. Der Hinweis wird deutlich am Aufruf "{$o/name}": hier wird nämlich das gesamte Element "name" mit Start- und Endetag mit ausgegeben. Eine Änderung des Quelltextes in "{$o/name/text()}" ...


<erg>
{
  for $o in /Orte/Ort
  return 
    <Stadt id="{$o/id}">     
      {$o/name/text()}
    </Stadt>
}
</erg>

... würde das folgende Resultat ergeben:


<erg>
  <Stadt id="1">Neustadt</Stadt>
  <Stadt id="2">Darmstadt</Stadt>
  <Stadt id="3">Kapstadt</Stadt>
</erg>

wg / 4. Januar 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse





WHERE



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/XQuery5.html