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 das gesamte Element name mit Start- und Ende-Tag 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 / 15. September 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.




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