XML in eine CSV Datei schreiben

sgamma

Grünschnabel
Hallo habe folgendes Problem.
Habe eine XML Datei mit folgendem Format:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<Document>
<RS:DE>
<RS:Rep report="1" datasource="1">
<RS:Rec jobref="1" id="1" tid="1">
<RS:Error reason="a" code="1">Error1</RS:Error>
<RS:Warning reason="b" code="2">Warning1</RS:Warning>
<RS:Warning reason="c" code="3">Warning2</RS:Warning>
</RS:Rec>
<RS:Rec jobref="2" id="2" tid="2">
......
</RS:Rec>
</RS:Rep>
</RS:DE>
</Document>

Es können in der Datei beliebig viele Errors und Warnings zu einem Rec stehen. Und es gibt diverse Recs innerhalb des Rep.

Ich will/muss jetzt aus der Datei eine folgende TXT/CSV Datei bekommen, die in jeder Zeile folgende Werte ausgibt:
report;datasource;jobref;id;tid;reason;code;{Errortext};reason;code;{Warningtext}


Mein Problem ist das ich dabei in jeder Zeile erneut alle infos auslesen muss. Wäre für Hilfe sehr dankbar.

Mein XSLT hierzu sieht wie folgt aus:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:RS="url">
<xsl:output method="text"/>

<xsl:template match="RS:DE">
<xsl:for-each select="RS:Rep">
<xsl:value-of select="@report"/>;<xsl:value-of select="@datasource"/>;
<xsl:for-each select="RS:Rec">
<xsl:value-of select="@jobref"/>;<xsl:value-of select="@id"/>;<xsl:value-of select="@tid"/>;
<xsl:for-each select="RS:Error">
<xsl:value-of select="@reason"/>;<xsl:value-of select="@code"/>;<xsl:value-of select="."/>;
</xsl:for-each>
<xsl:for-each select="RS:Warning">
<xsl:value-of select="@reason"/>;<xsl:value-of select="@code"/>;<xsl:value-of select="."/>;
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
 
Zuletzt bearbeitet:
Zurück