xsl:mode on-no-match="shallow-copy"

Übung 2

Nutzen Sie den Modus on-no-match="shallow-copy", um das city-Element und das Attribut value der openWeather.xml in stadt bzw. wert zu übersetzen. Der Rest des Dokuments soll unverändert in den Output kopiert werden. Siehe das folgende Code-Beispiel:

Code-Beispiel: Output-Vorgabe zu Übung 2 (Auszug).

<cityWeather>
  <current>
    <stadt id="2950159" name="Berlin"/>
    <TEMP value="284.15" min="284.15" max="284.15" unit="kelvin"/>
    <humidity wert="76" unit="%"/>
    <pressure wert="1031" unit="hPa"/>
    <wind>
      <speed wert="3.1" name="Light breeze"/>
      <gusts/>
      <direction wert="150" code="SSE" name="South-southeast"/>
    </wind>
    <clouds wert="0" name="clear sky"/>
    <visibility/>
    <precipitation mode="no"/>
    <weather number="800" wert="Sky is Clear" icon="01d"/>
    <lastupdate wert="2015-12-08T11:20:00"/>
  </current>
  ...       
</cityWeather>

Nach der Transformation wurde city in stadt und value in wert transformiert.

Verwenden Sie das Transformationsszenario [Übung 2] on-no-match="shallow-copy" (XML >> XML) (siehe die Erläuterungen zu den Übungen) und die folgende XSLT-Datei:

Code-Beispiel: Stylesheet für Übung 2 zu xsl:mode on-no-match="shallow-copy".

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:math="http://www.w3.org/2005/xpath-functions/math" exclude-result-prefixes="xs math" version="3.0">
  <!--AUFGABE: Nutzen Sie on-no-match="shallow-copy", um das Element city und das Attribut @value umzubenennen. Der Rest der XML-Datei soll unverändert in den Output übernommen werden. -->
    <!--TODO: Streaming-Modus und on-no-match definieren.-->
    <!--TODO: Entsprechende Templates anlegen.-->    
</xsl:stylesheet>

Erweiterung

Schreiben Sie ein weiteres Template, welches das Attribut name des city-Elements in ortsname umbenennt.

Was passiert? Und warum?

Lösung

Das vollständige Output-XML und das Lösungsstylesheet finden Sie unter Lösungen zu Übung 2 — xsl:mode on-no-match="shallow-copy".

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: