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: