Die Verarbeitung von XML-Dateien mit Talend gestaltet sich sehr einfach. In diesem Beitrag nehme ich Sie für ein 5-minütiges Tutorial an die Hand und zeige Ihnen, dass ordentlich gepflegte Metadaten der Schlüssel zum Erfolg sind. Mit Talend lässt sich dies schnell per drag’n’drop umsetzen; Kenntnisse in XPath sind nicht von Nöten.
In meinem Beispiel habe ich die Felder userName, firstName und lastName aus einer XML-Datei extrahiert und in eine Excel-Datei überführt.

Ich habe zur Überprüfung der angemeldeten Nutzer einer Bonitasoft-Installation die Organisation als XML-Datei exportiert und baue meine Beispiele darauf auf. 

Nach dem Erstellen des Jobs, legen wir uns zuerst Metadaten für die zu bearbeitende XML-Datei an. Hierzu rechtsklicken wir unter Metadata, File xml auf Create file xml und folgen dem Wizard.
In Schritt 1 von 5 geben wir wie üblich Name, Purpose und Description ein und wählen in Schritt 2 Input XML.
Im dritten Schritt geben wir die Eingabedatei und deren Encoding an. Sobald Talend die Datei geladen hat, wird deren Schema angzeigt. In meinem Fall gibt es die Knoten users, roles, groups und memberships, in denen die Nutzer, Rollen, Gruppen sowie die Zugehörigkeiten gespeichert sind.

Automatisches Erkennen des Schemas der XML Datei

Automatisches Erkennen des Schemas der XML Datei

Nun erfolgt in Schritt 4 die Auswahl der Daten, die in diesem Metadaten-Eintrag konfiguriert werden sollen. Wichtig ist hierbei die Xpath loop expression: Damit Talend alle user unterhalb des Knotes users extrahieren kann, muss der Knoten user als wiederholendes Element ausgezeichnet werden. Hierzu können wir einfach den Knoten user in das Feld für Xpath loop expression per drag’n’drop hineinziehen. Talend setzt dann automatisch den XPath Ausdruck.
Nun möchte ich nur die Felder userName, firstName und lastName auslesen. Auch diese Knoten ziehe ich per drag’n’drop in die Fields to extract. Ein Klick auf Refresh Preview zeigt mir, dass die richtigen Daten extrahiert werden.

Auswahl der XPath loop expression und der Felder via drag'n'drop

Auswahl der XPath loop expression und der Felder via drag’n’drop

Mit der Schemadefinition in Schritt 5 schließen wir den Wizard ab. Hier gibt es die Möglichkeit die Felder umzubenennen oder deren Datentypen zu ändern.

Der Metadaten-Eintrag ist nun fertig und kann per drag’n’drop in einen Job gezogen werden. Wir wählen tFileInputXML im aufpoppenden Dialog und werden mit einer richtig konfigurierten Komponente belohnt. Standardmäßig ist die Eingabedatei mit der zur Erstellung der Metadaten-Eintrags ausgewählten Datei vorbelegt.

Konfiguration der tFileInputXML-Komponente durch Metadaten

Konfiguration der tFileInputXML-Komponente durch Metadaten

Zum Export der Nutzerdaten nach Excel habe ich eine tFileOutputExcel-Komponente eingefügt, konfiguriert (Dateiname, Encoding, Dateityp  etc.) und beide Komponenten verbunden.

Datenfluss in eine tFileOutputExcel-Komponente

Datenfluss in eine tFileOutputExcel-Komponente

Ich habe noch zwei weitere Komponenten eingefügt: tSortRow zum Sortieren und tFilterRow zum Filtern der Daten.
Im Beispiel gebe ich nur die Nutzer aus, deren firstName mehr als 8 Zeichen hat. Die Ausgabe erfolgt aufsteigend sortiert nach dem lastName.

Durchlauf mit Filterung, Sortierung und Export nach Excel

Durchlauf mit Filterung, Sortierung und Export nach Excel

Nachtrag zu den wiederholenden Elementen
In einem Auslesevorgang kann nur ein Element als ein wiederholendes Element markiert werden. Möchte man beispielsweise die Nutzerinformationen mit den Gruppeninformationen verbinden, muss die XML-Datei dreimal (wiederholendes Element: usergroup und membership) ausgelesen werden und die Datenströme mit der tMap-Komponente verbunden werden.