Lösungen zu Übung 11: Mitarbeiterliste aufteilen (xsl:fork)
Im Folgenden finden Sie die Lösungsdateien zu Übung 11 unter Mitarbeiterliste aufteilen.
Code-Beispiel: Lösungs-XSLT zu Übung 11.
<?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" exclude-result-prefixes="xs" version="3.0">
<!-- AUFGABE: Schreiben Sie eine XSLT-Transformation, um eine Personen-Liste in zwei XML-Dateien aufzuteilen. In einer Datei sollen alle männlichen Personen und in der anderen alle weiblichen enthalten sein. -->
<!-- AUSGABE:
female.xml:
<Females>
<Name Title="Ms." Gender="female">
<Firstname>Laura</Firstname>
<Surname>Ackermann</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Lena</Firstname>
<Surname>Bar</Surname>
</Name>
</Females>
male.xml
<Males>
<Name Title="Mr." Gender="male">
<Firstname>René</Firstname>
<Surname>Beckenbauer</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Benjamin</Firstname>
<Surname>Biermann</Surname>
</Name>
</Males>
-->
<xsl:output indent="yes"/>
<xsl:mode streamable="yes"/>
<!-- Root-Element auswählen -->
<xsl:template match="Company">
<!-- Bearbeitung in mehrere Prozesse aufteilen -->
<xsl:fork>
<!-- Prozess 1 -->
<xsl:sequence>
<!-- Ausgabe-Datei definieren für männliche Mitarbeiter -->
<xsl:result-document href="male.xml">
<Males>
<!-- Über alle Personen itterieren und nur männliche Personen auswählen -->
<xsl:for-each select="Person/Name[@Gender = 'male']">
<xsl:copy-of select="."/>
</xsl:for-each>
</Males>
</xsl:result-document>
</xsl:sequence>
<!-- Prozess 2 -->
<xsl:sequence>
<!-- Ausgabe-Datei definieren für weibliche Mitarbeiter -->
<xsl:result-document href="female.xml">
<Females>
<!-- Über alle Personen iterieren und nur weibliche Personen auswählen -->
<xsl:for-each select="Person/Name[@Gender = 'female']">
<xsl:copy-of select="."/>
</xsl:for-each>
</Females>
</xsl:result-document>
</xsl:sequence>
</xsl:fork>
</xsl:template>
</xsl:stylesheet>
Code-Beispiel: Output-XML zu Übung 11 - weibliche Mitarbeiter.
<?xml version="1.0" encoding="UTF-8"?>
<Females>
<Name Title="Ms." Gender="female">
<Firstname>Laura</Firstname>
<Surname>Ackermann</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Lena</Firstname>
<Surname>Bar</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Jennifer</Firstname>
<Surname>Bayer</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Anna</Firstname>
<Surname>Beckenbauer</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Anja</Firstname>
<Surname>Bohm</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Jessika</Firstname>
<Surname>Brauer</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Barbara</Firstname>
<Surname>Eggers</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Juliane</Firstname>
<Surname>Eisenberg</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Johanna</Firstname>
<Surname>Faerber</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Leonie</Firstname>
<Surname>Frey</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Christina</Firstname>
<Surname>Gruenewald</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Sophia</Firstname>
<Surname>Gärtner</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Maria</Firstname>
<Surname>Hartmann</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Sandra</Firstname>
<Surname>Jager</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Leah</Firstname>
<Surname>Kalb</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Petra</Firstname>
<Surname>Kirsch</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Michelle</Firstname>
<Surname>Klug</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Barbara</Firstname>
<Surname>Kohler</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Mandy</Firstname>
<Surname>Lemann</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Birgit</Firstname>
<Surname>Loewe</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Diana</Firstname>
<Surname>Maier</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Silke</Firstname>
<Surname>Pabst</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Ines</Firstname>
<Surname>Schiffer</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Yvonne</Firstname>
<Surname>Schreiner</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Maria</Firstname>
<Surname>Schulz</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Daniela</Firstname>
<Surname>Traugott</Surname>
</Name>
<Name Title="Mrs." Gender="female">
<Firstname>Sabine</Firstname>
<Surname>Waechter</Surname>
</Name>
<Name Title="Ms." Gender="female">
<Firstname>Mandy</Firstname>
<Surname>Wechsler</Surname>
</Name>
</Females>
Code-Beispiel: Output-XML zu Übung 11 - männliche Mitarbeiter.
<?xml version="1.0" encoding="UTF-8"?>
<Males>
<Name Title="Mr." Gender="male">
<Firstname>René</Firstname>
<Surname>Beckenbauer</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Benjamin</Firstname>
<Surname>Biermann</Surname>
</Name>
<Name Title="Dr." Gender="male">
<Firstname>Erik</Firstname>
<Surname>Bumgarner</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Eric</Firstname>
<Surname>Bumgarner</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Jörg</Firstname>
<Surname>Drescher</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Tobias</Firstname>
<Surname>Drescher</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Kristian</Firstname>
<Surname>Ebersbach</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Jens</Firstname>
<Surname>Eisenhauer</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Philipp</Firstname>
<Surname>Finkel</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Maik</Firstname>
<Surname>Gerste</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Dominik</Firstname>
<Surname>Herz</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Lucas</Firstname>
<Surname>Kirsch</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Torsten</Firstname>
<Surname>Mehler</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Thorsten</Firstname>
<Surname>Metzger</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Niklas</Firstname>
<Surname>Nadel</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Ulrich</Firstname>
<Surname>Pfeffer</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Martin</Firstname>
<Surname>Rothschild</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Felix</Firstname>
<Surname>Schmidt</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Marco</Firstname>
<Surname>Shuster</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Mathias</Firstname>
<Surname>Winkel</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Steffen</Firstname>
<Surname>Ziegler</Surname>
</Name>
<Name Title="Mr." Gender="male">
<Firstname>Jens</Firstname>
<Surname>Zweig</Surname>
</Name>
</Males>
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |