Hallo,
ich möchte auf das Vorhandensein einer ID in einer zweiten (deklariert über die Variable 'import_data') XML-Datei prüfen. Falls diese ID vorliegt, dann soll sie in das erste XML übertragen werden. Falls diese ID nicht vorliegt, dann soll eine Hilfs-ID übertragen werden.
Die Hilfs-ID wird ebenfalls zum Matching der Datensätze benutzt.Ich habe folgende choose-Anweisung erstellt:
xsl:choose
<xsl:when test="$import_data/Import/Row/ID!=''">
<xsl:attribute name="id">
<xsl:value-of select="$import_data//*[hilfs_ID = $hilfs_id]/ID"/>
</xsl:attribute>
</xsl:when>
xsl:otherwise
<xsl:attribute name="id">
<xsl:value-of select="$import_data//*[hilfs_ID = $hilfs_id]/hilfs_ID"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>Die When-Anweisung wird durchgeführt und die entsprechende ID übertragen, die Otherwise-Anweisung jedoch nicht.
Kann mir jemand weiterhelfen?
Da es in beiden Fällen ein Attribute erstellt wird, würde ich das etwas anders angehen:
<xsl:attribute name="id">
xsl:choose... </xsl:choose>
</xsl:attribute>
Dann solltest du dich davon überzeugen, dass "$import_data/Import/Row/ID" tatsächlich leer ist. Z.B.: normalize-space($import_data/Import/Row/ID) != ''
Grüße
Thomas