Thomas Meinike: warum kommt es doppelt vor?

Beitrag lesen

Hallo,

meine XSL:

<xsl:for-each select="Baugruppen/Baugruppe">
<input type="text" name="Typ" value="{@Typ}" readonly="readonly" style="text-align:center"/>
</xsl:for-each>

mein problem ist, dass er es doppelt anzeigt. also zwei inputs. eine mit SM die andere mit SB.

xsl:for-each macht das, was man erwartet: Fuer jedes Vorkommen von Baugruppen/Baugruppe wird ein input-Element erzeugt.

wie kann ich das problem umgehen?

Wenn es nur das erste Vorkommen sein soll:

<input type="text" name="Typ" value="{Baugruppen/Baugruppe[1]/@Typ}" readonly="readonly" style="text-align:center"/>

oder innerhalb von xsl:for-each entsprechend pruefen auf den Attributwert oder die aktuelle Position bzgl. Baugruppe:

<xsl:if test="@Typ = 'SM'">
  <input ... />
</xsl:if>

bzw.

<xsl:if test="position() = 1">
  <input ... />
</xsl:if>

MfG, Thomas