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

XQuery: Arbeiten mit XML-Input

XQuery: Arbeiten mit XML-Input

➪ Die Inhalte der XML-Input-Elemente können mit ./text() ausgewertet werden. Erfolgt das nicht, so wird der jeweilige Element-Node übernommen, an dem der Textnode als Child hängt.

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 / 22. März 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

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XQuery5.html