Thomas J.S.: Abfrage in einem externen XML-Dokument

Beitrag lesen

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