Hallo erstmal!
Nach einer langen Suche bin ich meiner Möglichkeiten nicht mehr sicher und stelle hier meine Frage rein, in der Hoffnung eine Antwort zu bekommen.
Ich versuche mit XSL/T eine XML in ein HTML-select zu formatieren.
<PullDownMenu name="FontSize" rows="1" style="...">
<Item name="8pt" value="8pt" label="8pt" descr="..." selected="0"/>
<Item name="9pt" value="9pt" label="9pt" descr="..." selected="0"/>
</PullDownMenu>
Das geht zum Beispiel so (wenn ich jeweils die Namen der Attribute kenne)
<xsl:template match="PullDownMenu">
<select onchange="myAction(this.name, this.value)">
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="size">
<xsl:value-of select="@rows"/>
</xsl:attribute>
<xsl:for-each select="Item">
<option>
<xsl:attribute name="value">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="@descr"/>
</xsl:attribute>
<xsl:if test="@selected = '1'">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
<xsl:value-of select="@label"/>
</option>
</xsl:for-each>
</select>
</xsl:template>
Nun weiß ich das man mit XPath alle Attribute eines Elementes ansprechen kann. Zum Beispiel mit.
<xsl:for-each select="@*">
<xsl:value-of select="."/>
</xsl:for-each>
Wie bekommt man, wenn es denn überhaupt geht, den Namen das aktuellen Attributes innerhalb der Schleife herraus um diesen als neues Attribut einem neuen Element zuzuordnen.
So wie in PHP:
foreach($Attr as $k => $v) {...}
Den Wert eines Attributes kann ich über dessen Namen adressieren z.B.: '@label'.
Wird der Name eines Attributes in einer Schleife mitgeliefert?
Kann mir wer helfen eine Antwort zu finden? Oder auch nur zeigen wo es beschrieben steht :)
Danke im Vorraus
MfG JayDalton