Cam Andi: xsl Attribute per Attributwert bestimmen

Beitrag lesen

Hallo,

In C# zB würde ich vorgelagert eine for-each machen um das gesuchte Attribut zu finden um dann dessen Wert in eine Variable zu speichern. Dann könnte ich in der eigentlichen for-each den Variablen-Wert ausgeben.

Kann das, wie gesagt, so nicht nachvollziehen. Der Inhalt einer Variablen lässt sich aber durchaus dynamisch erzeugen:

<xsl:variable name="var">
  <xsl:for-each select="...">
    <!-- hier Prüfungen via xsl:if oder
         xsl:choose/xsl:when/xsl:otherwise
         und Wertzuweisung -->
  </xsl:for-each>
</xsl:variable>

Grüße,
Thomas

Hallo,

danke. Das hat mich auf die richtige Spur gebracht. So geht es:

<xsl:variable name="custdata_oldname">
  <xsl:for-each select="@*[name() = starts-with(name(), 'oper.CUSTOM_DATA')]">
    <xsl:if test=". = 'OldName'">
      <xsl:variable name="v2" select="substring(name(), 18, 1)"/>
      <xsl:value-of select="concat('oper.CUSTOM_DATA_', $v2, '_VALUE')" />
    </xsl:if>
  </xsl:for-each>
</xsl:variable>

Nun kann ich weiter hinten die Variable verwenden.

Vielen Dank für die Hilfe.

Gruß Andi