IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Récupération d'un bouton radio sélectionné dans un fichier XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Récupération d'un bouton radio sélectionné dans un fichier XML
    Bonjour,

    Je souhaite personnaliser un formulaire HTML pour récupérer des données saisies au format XML.

    J'arrive à récupérer le contenu d'un TextBox ou d'un CheckBox, mais pas celui d'un bouton radio.

    Exemple qui fonctionne pour mon TextBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:for-each select="myTextBox">
      <input type="text" id="myTextBox">
        <xsl:attribute name="value">
          <xsl:value-of select="." />
        </xsl:attribute>
      </input>
    </xsl:for-each>
    Exemple qui fonctionne pour mon CheckBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:for-each select="myCheckBox">
      <input type="Checkbox" id="myCheckBox">
        <xsl:attribute name="value">
          <xsl:value-of select="." />
        </xsl:attribute>
      </input>
    </xsl:for-each>
    Exemple qui ne fonctionne pas pour mon bouton radio :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <xsl:for-each select="myRadioButton">
      <input type="radio" id="myRadioButton" value="A" checked="checked">
        <xsl:attribute name='value'>
          <xsl:value-of select='.'/>
        </xsl:attribute>
      </input>
      <input type="radio" id="myRadioButton" value="B">
        <xsl:attribute name='value'>
          <xsl:value-of select='.'/>
        </xsl:attribute>
      </input>
    </xsl:for-each>
    J'ai testé différentes syntaxes mais n'en ai trouvé aucune qui fonctionne
    (Je veux simplement récupérer les valeurs "A" ou "B" selon le bouton radio sélectionné)

    Quelqu'un a-t'il un exemple de syntaxe qui devrait fonctionner ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    cela dépend évidemment du XML que tu essaies de transformer.

    Si ça se trouve ce n'est même pas possible, puisque pour des radio buttons il faut connaître toutes les valeurs au choix, et sélectionner seulement celle qui a été choisie. Or tu ne nous as pas montré si ton XML contient ces informations.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:for-each select="myRadioButton">
      <input type="radio" id="myRadioButton" value="A" checked="checked">
        <xsl:attribute name='value'>
          <xsl:value-of select='.'/>
        </xsl:attribute>
      </input>
      <input type="radio" id="myRadioButton" value="B">
        <xsl:attribute name='value'>
          <xsl:value-of select='.'/>
        </xsl:attribute>
      </input>
    </xsl:for-each>
    Cela ne marche jamais dans tous les cas: on met @value='A' ou le même @value='B', et puis on met xsl:attribute name='value' la suite, c'est interdit et ça veut dire deux attributs de nom value et c'est impossible.

    Et puis, en ce qui concerne @id, ici pour bouton radio ou, d'ailleurs, pour checkbox le même, il vaut mieux de ne pas mettre la même valeur. L'analyseur html le tolère, mais pour le scriptage moderne plus en plus poussé, il vaut mieux respecter l'unicité de @id. Je vais vous montrer comment dans le cas des boutons radio.

    Et puis encore, pour un groupe de boutons radio marche, il faut avoir un indicateur qui dit ils sont dans le même groupe. Et un attribut name remplit le rôle de cet indicateur.

    Prenons un exemple du fragment de xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <myRadioGroup group="nomunique">
        <myRadioButton>A</myRadioButton>
        <myRadioButton>B</myRadioButton>
        <myRadioButton>C</myRadioButton>
    </myRadioGroup>

    On peut faire comme ça.
    Code xsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:template match="myRadioGroup">
        <xsl:for-each select="myRadioButton">
            <xsl:variable name="id" select="concat(parent::*/@group, position())" />
            <input type="radio" id="{$id}" name="{parent::*/@group}">
                <xsl:attribute name="value"><xsl:value-of select="normalize-space()" /></xsl:attribute>
                <xsl:if test="normalize-space()='A'">
                    <xsl:attribute name="checked" select="'checked'" />
                </xsl:if>
                <label for="{$id}"><xsl:value-of select="normalize-space()" /></label>
            </input>
        </xsl:for-each>
    </xsl:template>
    Comme ça, on est dans le côté correct même pour le scriptage html bien exigeant et moderne.

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Pour être plus complet, mon code précédent est dans un fichier xslt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
      <xsl:output method="html" omit-xml-declaration="yes" standalone="no" />
      <xsl:template match="/">
          <xsl:for-each select="myTextBox">
            <input type="text" id="myTextBox">
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myCheckBox">
            <input type="Checkbox" id="myCheckBox">
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myRadioButton">
            <input type="radio" id="myRadioButton" value="A" checked="checked">
              <xsl:attribute name='value'>
                <xsl:value-of select='.'/>
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myRadioButton">
            <input type="radio" id="myRadioButton" value="B">
              <xsl:attribute name='value'>
                <xsl:value-of select='.'/>
              </xsl:attribute>
            </input>
          </xsl:for-each>
        </xsl:for-each>
      </xsl:template>
    </xsl:stylesheet>
    Mon fichier xml ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <Upload ElementXPath="/Upload[1]">
    <myTextBox ElementXPath="/Upload[1]/myTextBox[1]"></myTextBox>
    <myCheckBox ElementXPath="/Upload[1]/myCheckBox[1]"></myCheckBox >
    <myRadioButton ElementXPath="/Upload[1]/myRadioButton[1]"></myRadioButton>
    </Upload>
    et j'ai également un fichier xsd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="Upload">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="myTextBox">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="myCheckBox">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="myRadioButton">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ElementXPath" type="xs:string" />
        </xs:complexType>
      </xs:element>
    </xs:schema>
    Dans ce cas, à quel endroit dois-je mettre la balise xml myRadioGroup ?

  5. #5
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Dans ce cas, à quel endroit dois-je mettre la balise xml myRadioGroup ?
    Que sais-je? Avec ce genre de xml et xslt, même en passant la partie de bouton radio et xsl:for-each outre balance, comment voulez-vous justifier :
    J'arrive à récupérer le contenu d'un TextBox ou d'un CheckBox, ...
    avec un template qui matche '/' qui appelle xsl:for-each myTextBox et on prétend qu'il donne quelque chose ?! C'est fort.

    Ce n'est pas le bon xml, il faut montrer le résultat d'un processus préalable de cet xml si il y en a un tel processus préalable. Malheureusement, je n'ai pas de temps de faire spéculer tout le temps. Non.

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Ces fichiers sont issus d'une interface développée par Kodak (Interface d'envoi de fichiers de leur logiciel InSite), et permettent de récupérer la valeur d'un textbox renseigné lors de l'envoi de fichiers
    (le fichier xml de base est alors complété du textbox renseigné).

    J'ai juste ajouté un checkbox dans les 3 fichiers et je récupère bien sa valeur true/false dans le fichier xml complété.

    Je comprend la syntaxe XML mais je débute dans les formats XSL/XSD, donc je ne cherche pas à corriger entièrement le code pour qu'il soit parfais,
    mais uniquement ajouter un bouton radio et récupérer sa valeur (je pensais qu'il suffisait d'ajouter un "if test" quelque part et adapter la syntaxe pour mettre les arguments ou il faut).

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je te l'ai déjà dit : pour un bouton radio il faut connaître toutes les valeurs au choix, et toi avec ton document XML tu n'as que la valeur choisie. C'est donc impossible. Tu te retrouverais avec un seul bouton radio à cliquer et donc aucun choix à faire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Les valeurs "A" et "B" sont dans le fichier XSLT.
    Si je comprend bien, il faut qu'elles soient dans le fichier XML également, et donc c'est comme si j'avais 2 checkbox
    (l'un aura une valeur égale à true et l'autre à false) ?

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je comprends pas, d'un côté tu nous dit que tu as besoin de récupérer les valeurs pour A et pour B, et d'un autre côté tu nous dis qu'elles sont dans le fichier XSLT.

    Il faut choisir, c'est lequel des deux ? Et dans le second cas, ben pourquoi tu ajoutes un attribut value avec un select pour la valeur, alors ? Elle est déjà là la valeur.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Mon fichier xslt est la page html qui s'affiche, donc il contient deux boutons radios auxquels j'ai choisi d'attribuer la valeur "A" pour le premier bouton et la valeur "B" pour le second.
    Lorsque le formulaire s'affiche, le fichier XML est lu, ne contient aucun valeur donc je force dans le fichier xslt le premier bouton à être coché par défaut.
    Lorsque l'utilisateur valide le formulaire (après avoir éventuellement coché l'option B au lieu de l'option A), cela me génère un autre fichier xml, identique à celui qui a été lu à l'ouverture du formulaire, mais contenant en plus les valeurs renseignées : donc il faudrait qu'il contienne l'information du bouton radio sélectionné :
    - soit une valeur "Option_Choisie" contenant "A" ou" B",
    - soit deux valeurs "Option_A_Cochee" et "Option_B_Cochee" contenant l'une "true" et l'autre "false".

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ah, d'accord.

    Donc en gros ton problème c'est comment choisir sur quel bouton mettre le checked=checked.

    Bon ben ça peut se faire avec un simple if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <input type="radio" id="myRadioButton" value="A">
      <xsl:if test=". = 'A'">
        <xsl:attribute name="checked">checked</xsl:attribute>
      </xsl:if>
    </input>
    Cela dit, ça peut être assez répétitif à la longue de répéter ce code pour chaque option possible. Du coup je ferais un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <xsl:variable name="radioButtonValues">
      <value>A</value>
      <value>B</value>
    </xsl:variable>
     
    <xsl:template match="myRadioButton">
      <xsl:variable name="value" select="."/> <!-- sauvegarder la valeur lue du bouton -->
      <xsl:for-each select="$radioButtonValues/value"> <!-- pour chaque valeur possible -->
        <input type="radio" id="myRadioButton" value="{.}"> <!-- créer le bouton -->
         <!-- et si la valeur lue est celle du bouton créé, mettre l'attribut checked. Pareil si la valeur lue ne correspond à aucune valeur possible (genre si elle est vide) et qu'on est sur le premier bouton -->
        <xsl:if test="$value = . or (position() = 1 and not($radioButtonValues/value = $value))">
          <xsl:attribute name="checked">checked</xsl:attribute>
        </xsl:if>
        </input>
      </xsl:for-each>
    </xsl:template>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai testé les 2 propositions mais aucune ne fonctionne (La première m'aurait suffit car je n'ai que 3 options en réalité).

    J'ai quand même testé la 2ème mais j'obtiens l'erreur suivante, probablement car mes boutons radios sont déjà dans une boucle xsl:for-each :
    Erreur système : 'xsl:template' cannot be a child of the 'xsl:for-each' element.

    En supprimant la balise xsl:template, j'obtiens alors une autre erreur :
    Erreur système : To use a result tree fragment in a path expression, first convert it to a node-set using the msxsl:node-set() function.

    J'ai constaté que si mon fichier xml lu contient le code ci-dessous, la valeur "Test" reste présente dans le fichier XML généré, quelle que soit l'option choisie (la valeur n'est pas remplacée par "A" ou "B") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <myRadioButton ElementXPath="/Upload[1]/myRadioButton [1]">Test</myRadioButton >
    Je ne comprend pas pourquoi il faut mettre <xsl:attribute name="checked">checked</xsl:attribute>
    Pour mon CheckBox, c'est <xsl:attribute name="value"><xsl:value-of select="." /></xsl:attribute> que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:for-each select="myCheckBox">
      <input type="Checkbox" id="myCheckBox">
        <xsl:attribute name="value">
          <xsl:value-of select="." />
        </xsl:attribute>
      </input>
    </xsl:for-each>
    et j'obtiens bien le contenu suivant dans le fichier XML généré (quand la case est coché) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <myCheckBox ElementXPath="/Upload[1]/myCheckBox[1]">true</myCheckBox>

  13. #13
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    N'ayant pas réussir à faire fonctionner les boutons radios, j'ai les ai finalement remplacés par des checkbox :

    Fichier xml lu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <Upload ElementXPath="/Upload[1]">
    <myTextBox ElementXPath="/Upload[1]/myTextBox[1]"></myTextBox>
    <myCheckBox ElementXPath="/Upload[1]/myCheckBox[1]"></myCheckBox >
    <myCheckBoxA ElementXPath="/Upload[1]/myCheckBoxA[1]"></myCheckBoxA>
    <myCheckBoxB ElementXPath="/Upload[1]/myCheckBoxB[1]"></myCheckBoxB>
    </Upload>
    Fichier xsd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="Upload">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="myTextBox">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="myCheckBox">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="myCheckBoxA">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="myCheckBoxB">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="ElementXPath" type="xs:string" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="ElementXPath" type="xs:string" />
        </xs:complexType>
      </xs:element>
    </xs:schema>
    Fichier xslt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
      <xsl:output method="html" omit-xml-declaration="yes" standalone="no" />
      <xsl:template match="/">
        <xsl:for-each select="Upload">
          <script type="Text/Javascript">
            function chgMyCheckBoxA()
            {
              document.getElementById( 'myCheckBoxA' ).checked='checked';
              document.getElementById( 'myCheckBoxB' ).checked='';
            }
            function chgMyCheckBoxB()
            {
              document.getElementById( 'myCheckBoxA' ).checked='';
              document.getElementById( 'myCheckBoxB' ).checked='checked';
            }
          </script>
          <xsl:for-each select="myTextBox">
            <input type="text" id="myTextBox">
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myCheckBox">
            <input type="Checkbox" id="myCheckBox">
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myCheckBoxA">
            <input type="Checkbox" id="myCheckBoxA" onchange="chgMyCheckBoxA()" checked="checked">
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
          <xsl:for-each select="myCheckBoxB">
            <input type="Checkbox" id="myCheckBoxB" onchange="chgMyCheckBoxB()" >
              <xsl:attribute name="value">
                <xsl:value-of select="." />
              </xsl:attribute>
            </input>
          </xsl:for-each>
        </xsl:for-each>
      </xsl:template>
    </xsl:stylesheet>
    Fichier xml généré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <Upload ElementXPath="/Upload[1]">
    <myTextBox ElementXPath="/Upload[1]/myTextBox[1]">myText</myTextBox>
    <myCheckBox ElementXPath="/Upload[1]/myCheckBox[1]">false</myCheckBox >
    <myCheckBoxA ElementXPath="/Upload[1]/myCheckBoxA[1]">true</myCheckBoxA>
    <myCheckBoxB ElementXPath="/Upload[1]/myCheckBoxB[1]">false</myCheckBoxB>
    </Upload>
    Ce n'est pas très propre, mais ça fonctionne
    (S'il y a un moyen de corriger uniquement le fichier xslt en remplaçant les checkbox par des boutons radios, et en conservant les balises myCheckBoxA et myCheckBoxB, je suis preneur).

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/07/2012, 20h22
  2. [PEAR][HTML_QuickForm] Bouton radio sélectionné par défaut
    Par JuTs dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/06/2010, 10h10
  3. Réponses: 0
    Dernier message: 14/11/2008, 12h35
  4. déterminer le bouton radio sélectionné
    Par Houssem dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 12/04/2007, 06h01
  5. [Debutant] Pb avec récupération valeurs des boutons radio
    Par Jibees dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/03/2006, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo