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

Übung 3

Die XML-Datei WetterdatenStuttgart.xml soll verschlankt werden. Die Output-Datei soll lediglich das Root-Element year sowie für jedes month-Element ein untergeordnetes temperature-Element beinhalten. Siehe die folgende Output-Datei. Alle anderen Elemente sind nicht mit in die Output-Datei zu übernehmen. Setzen Sie hierfür on-no-match="shallow-skip" ein.

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

<year value="2015">
  <month name="january">
    <temperature min="-2,1" max="3,2" unit="celsius"/>
  </month>
  <month name="february">
    <temperature min="-1,2" max="5,1" unit="celsius"/>
  </month>
  ...       
</year>

Die Ergebnis-XML, welche nur die gewünschten Informationen enthält.

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

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

<?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-skip", um nur die Elemente year, month und temperature der XML-Datei in den Output zu übernehmen.-->
  <!--TODO: Streaming-Modus und on-no-match definieren.-->
  <xsl:output indent="yes" />
  <!--TODO: Entsprechende Templates anlegen.-->
</xsl:stylesheet>

Erweiterung

Ersetzen Sie shallow-skip durch deep-skip.

Was ändert sich dadurch am Output? Und warum?

Lösung

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

   

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