Hallo zusammen,
ich habe folgende XML-Struktur:
Ich würde nun gerne an die <file>-Elemente ein zustätzliches Attribut "nr" hinzufügen, welches die <file>-Elemente durchnummeriert.
Das File soll demnach nach der Transformation so aussehen:
Ich habe es mit folgendem Skript versucht, allerdings wird hierbei jedes Element der XML mit einer fortlaufenden Nummer versehen. Ich weiß daher nicht wie ich nur die <file>-Elemente anspreche.
ich habe folgende XML-Struktur:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<myForm>
<antrag_datum>23.01.2020</antrag_datum>
<angaben_zum_bildinhaber>
<name>Mustermann</name>
<vorname>Max</vorname>
<strasse>Musterstraße</strasse>
<hausnummer>1</hausnummer>
<postleitzahl>12345</postleitzahl>
<ort>Musterhausen</ort>
</angaben_zum_bildinhaber>
<angaben_zu_fotos>
<dateifeld>
<dateifeld-item>
<file length="1000" id="4711" description="Dummydatei" content-type="application/pdf">Dummy1.pdf</file>
<bemerkung>Test 1</bemerkung>
</dateifeld-item>
<dateifeld-item>
<file length="1000" id="0815" description="Dummydatei" content-type="application/pdf">Dummy2.pdf</file>
<bemerkung>Test 2</bemerkung>
</dateifeld-item>
</dateifeld>
</angaben_zu_fotos>
</myForm>
Ich würde nun gerne an die <file>-Elemente ein zustätzliches Attribut "nr" hinzufügen, welches die <file>-Elemente durchnummeriert.
Das File soll demnach nach der Transformation so aussehen:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<myForm>
<antrag_datum>23.01.2020</antrag_datum>
<angaben_zum_bildinhaber>
<name>Mustermann</name>
<vorname>Max</vorname>
<strasse>Musterstraße</strasse>
<hausnummer>1</hausnummer>
<postleitzahl>12345</postleitzahl>
<ort>Musterhausen</ort>
</angaben_zum_bildinhaber>
<angaben_zu_fotos>
<dateifeld>
<dateifeld-item>
<file nr="01" length="1000" id="4711" description="Dummydatei" content-type="application/pdf">Dummy1.pdf</file>
<bemerkung>Test 1</bemerkung>
</dateifeld-item>
<dateifeld-item>
<file nr="02" length="1000" id="0815" description="Dummydatei" content-type="application/pdf">Dummy2.pdf</file>
<bemerkung>Test 2</bemerkung>
</dateifeld-item>
</dateifeld>
</angaben_zu_fotos>
</myForm>
Ich habe es mit folgendem Skript versucht, allerdings wird hierbei jedes Element der XML mit einer fortlaufenden Nummer versehen. Ich weiß daher nicht wie ich nur die <file>-Elemente anspreche.
XML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:attribute name="nr">
<xsl:number level="any" count="*" format="1" />
</xsl:attribute>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="comment()|processing-instruction()" />
</xsl:stylesheet>