jaydalton: Adressierung von Attributen und deren Namen

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

  1. Hallo jaydalton,

    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.

    Ansatz (bezogen auf den Kontext):

    <ausgabe_element>  
      <xsl:for-each select="@*">  
        <xsl:attribute name="{name()}">  
          <xsl:value-of select="."/>  
        </xsl:attribute>  
      </xsl:for-each>  
    </ausgabe_element>
    

    Grüße,
    Thomas

    1. Hallo :)

      Danke für die Antwort, jetzt komme ich weiter.