Zusammenführen von Mitarbeiterlisten

Übung 7

Schreiben Sie eine XSLT-Transformation, mit welcher alle Mitarbeiter-Daten im XML-Format aus dem Input-Ordner (Flexus.xml, MatrixArchitecturalService.xml, MaxiTech.xml, Naugles.xml und Stratapro.xml) zusammengefasst werden. Die Personen sind bereits alphabetisch in jedem Firmenverzeichnis sortiert. Wenden Sie die Transformation auf die XSLT-Datei an.

In der Output-Datei sollen alle Mitarbeiter-Daten aller Firmen alphabetisch sortiert mit Vor-, Nachname und Firmenangabe enthalten sein.

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

<Personenliste>
  ...
  <Person Firma="Matrix Architectural Service">
    <Vorname>Stefanie</Vorname>
    <Nachname>Aachen</Nachname>
  </Person>
  <Person Firma="Maxi-Tech">
    <Vorname>Kristin</Vorname>
    <Nachname>Abendroth</Nachname>
  </Person>
  ...
</Personenliste>

Ausschnitt der zusammengeführten Mitarbeiterliste des Transformationsergebnises.

Verwenden Sie das Transformationsszenario [Übung 7] xsl:merge - Zusammenführen von Mitarbeiterlisten (n XML >> 1 XML) (siehe die Erläuterungen zu den Übungen) und die folgende XSLT-Datei:

Code-Beispiel: Stylesheet zu Übung 7: Zusammenführen von Mitarbeiterlisten.

<?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">
  <!-- Alle XML-Dateien aus Ordner auslesen: uri-collection('../in?select=*.xml')   
       Output-Vorlage:
       <Personenliste>
         <Person Firma="Maxi-Tech">
           <Vorname>Stefanie</Vorname>
           <Nachname>Aachen</Nachname>
         </Person>
       </Personenliste>
  -->
  <xsl:output indent="yes" />
  <xsl:strip-space elements="*" />
  <xsl:mode streamable="yes" on-no-match="shallow-copy" />
</xsl:stylesheet>

Tipp

Alle XML-Dateien eines Ordners auslesen

Mit Hilfe der Funktion uri-collection('../in?select=*.xml') können alle XML-Dateien im Input-Ordner ausgelesen werden.

Erweiterung

Bringen Sie in einer der Input-Dateien die Reihenfolge durcheinander und führen Sie die Transformation erneut aus.

Was passiert? Warum? Wie lässt sich das beheben?

Lösung

Das vollständige Output-XML und das Lösungsstylesheet finden Sie unter Lösungen zu Übung 7: Zusammenführen von Mitarbeiterlisten.

   

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