Discussion:
Transformation XSL (XML -> HTML)
(trop ancien pour répondre)
Kalbo
2005-11-03 15:32:07 UTC
Permalink
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
Kalbo
2005-11-07 11:05:47 UTC
Permalink
C'est bon j'ai vu l'erreur, j'etais mal placé dans l'arborescence de mon XML.
Post by Kalbo
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.
<xsl:choose>
<!-- text_field -->
</xsl:when>
<!-- single_selection -->
<xsl:for-each select="options/values/value">
</OPTION>
</xsl:for-each>
</SELECT>
</xsl:when>
<!-- RadioButton -->
<xsl:for-each select="options/values/value">
</INPUT>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<!-- Aucun controle defini ou connu -->
</xsl:otherwise>
</xsl:choose>
<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>
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
Loading...