2017-02-23 54 views
1

我想用XML和XSLT制作一个动态表单。我的目的是从我的XML文件中获取动态HTML代码。XSLT动态表单获取元素

我试图得到一个元素的值,但我无法达到它。

这是我的XML:

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

这是我的XSLT代码:

<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> 

我得到以下输出:

<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> 

我如何获得名称在我的HTML代码?我已经尝试使用../nameparent::node()

在此先感谢您。

+0

这是一个很好的,结构良好的问题,所以我upvoted它。 – zx485

回答

3

我已经使用../name

valueelement孙子尝试 - 所以为了从value上下文选择name,你需要向下上去2个水平,然后到name

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

或者,如果你愿意:

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

谢谢迈克尔。我以为我已经试过了,但我可能写错了。 – DMC19