Kalbo
2005-11-03 15:32:07 UTC
Bonjour,
J'utilise une feuille de style XSL pour transformer un fichier XML en un
formulaire HTML.
J'ai un problème quand j'essaye de creer des radio button.
Voici la partie de ma XSL qui créé les contrôles HTML :
<xsl:choose>
<!-- text_field -->
<xsl:when test="@style='text_field'">
<INPUT type="text" name="{@key}" id="{@key}" maxlength="50" size="60"/>
</xsl:when>
<!-- single_selection -->
<xsl:when test="@style='single_selection'">
<SELECT name="{@key}" id="{@key}">
<xsl:for-each select="options/values/value">
<OPTION VALUE="{@name_label_id}">
<xsl:value-of select="@label" />
</OPTION>
</xsl:for-each>
</SELECT>
</xsl:when>
<!-- RadioButton -->
<xsl:when test="@style='radio'">
<xsl:for-each select="options/values/value">
<INPUT type="radio" name="{@key}" id="{concat(@key,'1')}"
value="{@name_label_id}">
<xsl:value-of select="@label" />
</INPUT>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- Aucun controle defini ou connu -->
</xsl:otherwise>
</xsl:choose>
Et mon XML est le suivant :
<product>
<parameter key="test_unit::single_selection_in_a_group" id="7"
name_label_id="36" description_label_id="37" status="0" parent="5"
function="0" islist="0" style="radio" label="Un exemple de parametre avec
choix dans une liste membre d'un groupe de parametres">
<options>
<values translation_method="id">
<value name_label_id="38" label="Yes" />
<value name_label_id="39" label="No" />
</values>
</options>
</parameter>
</product>
Quand je créé qu'un seul radio button sur les 2 options le @key renseigne
bien le name et l'id de mon contrôles HTML type radio.
Par contre quand je mets le <xsl : for-each> alors le name et l'id sont vides.
Je comprends pas pourquoi...
Merci d'avance pour votre aide,
Kalbo
J'utilise une feuille de style XSL pour transformer un fichier XML en un
formulaire HTML.
J'ai un problème quand j'essaye de creer des radio button.
Voici la partie de ma XSL qui créé les contrôles HTML :
<xsl:choose>
<!-- text_field -->
<xsl:when test="@style='text_field'">
<INPUT type="text" name="{@key}" id="{@key}" maxlength="50" size="60"/>
</xsl:when>
<!-- single_selection -->
<xsl:when test="@style='single_selection'">
<SELECT name="{@key}" id="{@key}">
<xsl:for-each select="options/values/value">
<OPTION VALUE="{@name_label_id}">
<xsl:value-of select="@label" />
</OPTION>
</xsl:for-each>
</SELECT>
</xsl:when>
<!-- RadioButton -->
<xsl:when test="@style='radio'">
<xsl:for-each select="options/values/value">
<INPUT type="radio" name="{@key}" id="{concat(@key,'1')}"
value="{@name_label_id}">
<xsl:value-of select="@label" />
</INPUT>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- Aucun controle defini ou connu -->
</xsl:otherwise>
</xsl:choose>
Et mon XML est le suivant :
<product>
<parameter key="test_unit::single_selection_in_a_group" id="7"
name_label_id="36" description_label_id="37" status="0" parent="5"
function="0" islist="0" style="radio" label="Un exemple de parametre avec
choix dans une liste membre d'un groupe de parametres">
<options>
<values translation_method="id">
<value name_label_id="38" label="Yes" />
<value name_label_id="39" label="No" />
</values>
</options>
</parameter>
</product>
Quand je créé qu'un seul radio button sur les 2 options le @key renseigne
bien le name et l'id de mon contrôles HTML type radio.
Par contre quand je mets le <xsl : for-each> alors le name et l'id sont vides.
Je comprends pas pourquoi...
Merci d'avance pour votre aide,
Kalbo