Hi,
On 12/01/2022 10:03, Jens Böhme wrote:
ich habe eine große xml-Datei. In dieser sind für einige Attribute nur die Namen vorhanden. Die dazugehörigen Werte liegen in einer Tabelle vor. Zwischen der xml-Datei und der Tabelle gibt es einen gemeinsamen Schlüssel, hier HGA01. Ich möchte die Werte aus der Tabelle in die xml-Datei übernehmen.
So richtig habe ich keine Idee wie die Aufgabe gelöst werden kann. Habt ihr einen Vorschlag?
[...]
Bisher habe ich als einzige Lösungsmöglichkeit gefunden, die Tabelle mit den Daten in eine xml-Datei zu konvertieren und mit xsl die beiden xml-Dateien zusammen zufassen. Auf Grund der komplexen Struktur der zu ergänzenden xml-Datei nicht ganz einfach, ohne geeignete Werkzeuge.
Das sieht recht komplex und dynamisch aus. Aus der Erfahrung mit sowas würde ich sagen dass Du Dir ein Script oder Progrämmchen schreiben musst...
XSLT kann recht gut Daten extrahieren. Um Daten einzufügen ist es sub-optimal. Einfache Shell-Tools scheitern meistens am XML. Es sei denn Du musst nur für jede Zeile die Datenfelder an einer immer gleichen Stelle einfügen (ohne umständlich nach einem Key suchen zu müssen) und dann wird es abgelegt oder weggeschickt... Dann kannst Du Dir mit sed oder awk etwas basteln. Wenn sich das Input-XML jedesmal ändert oder die Daten je nach Key in unterschiedliche Elemente gepackt werden müssen, dann wird es komplexer.
Also such' Dir eine (Script-) Sprache aus und dann können wir Dir sagen wie es dort geht. Unter anderem stehen zur Auswahl: Perl, Python, Ruby, TCL, C++...
Das Prinzip ist immer das selbe:
Tabelle einlesen.
XML in einen DOM-Baum prügeln.
Durch den Baum gehen und dabei Daten aus der Tabelle ergänzen.
Baum wieder serialisieren.
Konrad