2017-02-23 2 views
1

Ich versuche, eine dynamische Form mit XML und XSLT zu machen. Mein Zweck ist ein dynamischer HTML-Code aus meiner XML-Datei.XSLT dynamisches Formular Elemente erhalten

Ich versuche, einen Wert eines Elements zu erhalten, aber ich kann es nicht erreichen.

Das ist mein XML:

<element> 
    <id>7</id> 
    <type>RADIO</type> 
    <name>Sexo</name> 
    <values> 
     <value>Hombre</value> 
     <value>Mujer</value> 
    </values> 
</element> 

Und das ist mein XSLT-Code:

<xsl:if test="type='RADIO'"> 
    <td> 
     <xsl:value-of select="name" />: 
    </td> 
    <td> 
     <xsl:for-each select="values/value"> 
      <input type="radio" name="{name}" 
        value="{current()}" onchange="myFunction(this.id,this.value)" /> 
      <xsl:value-of select="current()" /> 
     </xsl:for-each> 
    </td> 
</xsl:if> 

ich die folgende Ausgabe bekommen:

<td>Sexo:</td> 
<td><input onchange="myFunction(this.id,this.value)" 
      value="Hombre" name="" type="radio">Hombre 
    <input onchange="myFunction(this.id,this.value)" value="Mujer" name="" 
      type="radio">Mujer 
</td> 

Wie ich das bekommen kann Name in meinem HTML-Code? Ich habe bereits versucht mit ../name und parent::node()

Vielen Dank im Voraus.

+0

Dies ist eine gute und wohlgeformte Frage, so dass ich upvoted es. – zx485

Antwort

3

Ich habe bereits versucht, mit ../name

value die Enkel von element sind - so um die name aus dem Kontext der value zu wählen, müssen Sie zwei Ebene gehen, dann nach unten zu name:

<input type="radio" name="{../../name}" /> 

wenn Sie

Oder bevorzugen:

<input type="radio" name="{ancestor::element/name}" /> 
+0

Danke Michael. Ich dachte, ich hätte es schon versucht, aber ich hätte falsch geschrieben. – DMC19