Temperaturkurve Stuttgart 2015
Übung 9
Schreiben Sie eine XSLT-Transformation, welche aus der zugrunde liegenden Input-Datei WetterdatenStuttgart.xml eine CSV-Datei erstellt. Siehe folgende Abbildung:
Abbildung: Output-Vorgabe zu Temperaturkurve Stuttgart 2015.
Eine Tabelle mit Min- und Max-Temperaturangaben für jeden Monat im Jahr 2015.
Verwenden Sie das Transformationsszenario [Übung 9] xsl:iterate - Temperaturkurve Stuttgart 2015 (XML >> CSV) (siehe die Erläuterungen zu den Übungen) und die folgende XSLT-Datei. Iterieren Sie hierzu über jeden Monat, um sowohl die Min- als auch die Max-Temperatur für diesen Monat auszuwählen.
Code-Beispiel: Stylesheet zu Übung 9: Temperaturkurve Stuttgart 2015.
<?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: Erstellen Sie eine CSV-Datei, die als Tabelle für jeden Monat die min- und max-Temperatur enthält. Nutzen Sie hierfür xsl:iterate. -->
<!--ERWEITERUNG: Geben Sie zusätzlich für jeden Monat die Summe der Niederschläge aus den vorangegangenen Monaten + des aktuellen Monats aus. -->
<xsl:mode streamable="yes" />
<xsl:output method="text" />
<xsl:template match="year">
<!-- Columns header -->
<!-- für ERWEITERUNG auskommentieren -->
<xsl:text>month; min temp; max temp
</xsl:text>
<!-- für ERWEITERUNG einkommentieren -->
<!-- <xsl:text>month; min temp; max temp; rainSum
</xsl:text> -->
<!-- TODO: Beginn xsl:iterate -->
<!-- TODO: Ausgabe der Werte; jeweils durch ein Semikolon zu trennen -->
<!-- Zeilenumbruch -->
<!-- TODO: Ende xsl:iterate -->
</xsl:template>
</xsl:stylesheet>
Erweiterung
Zusätzlich zu den Temperaturwerten soll nun in einer weiteren Spalte die Summe der Niederschlagsmengen aus den vorangegangenen Monaten und dem aktuellen Monat dargestellt werden.
Tipp
Summen bilden
Nutzen Sie das xsl:next-iteration-Konstrukt, um einen Parameter für die folgende Iteration mit einem bestimmten Wert zu belegen.
Variante
Erstellen Sie eine neue Tabelle, welche für Stuttgart im Jahr 2015 die Durchschnittstemperaturen (min und max) sowie die Gesamtniederschlagsmenge enthält. Siehe folgende Abbildung:
Abbildung: Output-Vorgabe zu Temperaturkurve Stuttgart 2015 (Variante).
Eine Tabelle mit den durschnittlichen Min- und Max-Temperaturen sowie des Gesamtniederschlags für das Jahr 2015.
Nutzen Sie hierfür das Transformationsszenario [Übung 9 - Variante] xsl:iterate - Durchschnitt Stuttgart (XML >> CSV) und die folgende XSLT-Datei:
Code-Beispiel: Stylesheet zu Übung 9: Temperaturkurve Stuttgart 2015 (Variante).
<?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: Geben Sie in einer Tabelle die min- und max-Durchschnittstemperaturen für das gesamte Jahr 2015 sowie die Gesamtniederschlagsmenge an. Nutzen Sie hierfür xsl:iterate, xsl:next-iteration und xsl:on-completion. -->
<xsl:mode streamable="yes"/>
<xsl:output method="text"/>
<xsl:template match="year">
<!-- Columns header -->
<xsl:text>year; avg. min temp; avg max temp; rainSum
</xsl:text>
<!--TODO: xsl:iterate mit on-completion und next-iteration anlegen. -->
</xsl:template>
</xsl:stylesheet>
Tipp
Nur Gesamtwerte
Nutzen Sie das xsl:on-completion-Konstrukt, um nach der letzten Iteration einmalig Gesamtwerte auszugeben.
Lösung
Das vollständige Output-CSV und das Lösungsstylesheet zur Hauptaufgabe sowie zur Variante finden Sie unter Lösungen zu Übung 9: Temperaturkurve Stuttgart 2015.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |