Mitarbeiterliste aufteilen
Übung 11
Zur Übung soll nun eine XML-Datei mit einer Mitarbeiterliste in zwei einzelne XML-Dateien aufgeteilt werden, wobei in einer Datei alle männlichen und in der anderen alle weiblichen Personen aufgelistet werden sollen. Hierfür soll die xsl:fork-Anweisung benutzt werden, um die Verarbeitung auf mehrere Prozesse zu verteilen.
Wählen Sie dazu eine der Dateien (Flexus.xml, MatrixArchitecturalService.xml, Maxi-Tech.xml, Naugles.xml oder Stratapro.xml) aus dem in-Ordner aus.
Code-Beispiel: Output-Vorgabe - Ausgabe der weiblichen Personen (Auszug).
<Company Name="Flexus">
<Person>
<Name Title="Ms." Gender="female">
<Firstname>Laura</Firstname>
<Surname>Ackermann</Surname>
</Name>
<Birthday>2/21/1963</Birthday>
...
</Person>
<Person>
<Name Title="Ms." Gender="female">
<Firstname>Lena</Firstname>
<Surname>Bar</Surname>
</Name>
<Birthday>1/29/1973</Birthday>
...
</Person>
<Person>
<Name Title="Mrs." Gender="female">
<Firstname>Jennifer</Firstname>
<Surname>Bayer</Surname>
</Name>
<Birthday>6/21/1953</Birthday>
...
</Person>
...
</Company>
Ausgabe der weiblichen Personen.
Verwenden Sie das Transformationsszenario [Übung 11] xsl:fork - Personenliste (1 XML >> 2 XML) (siehe die Erläuterungen zu den Übungen) und die folgende XSLT-Datei:
Code-Beispiel: Stylesheet zu Übung 11: Mitarbeiterliste aufteilen.
<?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"/>
<xsl:template match="Company">
<xsl:fork> </xsl:fork>
</xsl:template>
</xsl:stylesheet>
Erweiterung
Versuchen Sie, die Aufgabe ohne xsl:fork zu lösen. Was fällt Ihnen dabei auf?
Tipp
Zusätzliche Ausgabe-Datei erstellen
Mit xsl:result-document kann eine zusätzliche Ausgabe-Datei erstellt werden. Der Dateiname wird im href-Attribut angegeben.
Lösung
Das vollständige Output-XML und das Lösungsstylesheet finden Sie unter Lösungen zu Übung 11: Mitarbeiterliste aufteilen.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |