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 :

[XSLT] est ce que xsl génére des espaces blancs?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut [XSLT] est ce que xsl génére des espaces blancs?
    bonjour ts,
    voilà ce que j'ai mis dans mon xsl pour générer un champ text en html : je veux que l'identificateur soit = position du noeud oû je me positionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:element name="input">
      <xsl:attribute name="type">text</xsl:attribute>
      <xsl:attribute name="id"><xsl:value-of select="position()"/></xsl:attribute>
       <xsl:attribute name="style">width:30;</xsl:attribute>
     </xsl:element>
    et voilà en javascript je veux récupérer la valeur de ce champs :
    en cliquant sur 1 boutton j'ai cette fonction qui se lance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function f(){
     var obj = document.getElementById("1")
     alert('le champ a pour valeur : '+obj.value+"'");	
    }
    ceci me donne une erreur, je sens que ce xsl génère des espaces blancs ,
    est ce que cela est vrai ? si oui comment remédier à ce problème

    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Pour moi, il ne devrait pas y avoir, dans ce que vous avez écrit, d'espaces ou sauts de ligne indésirables... ?!? Le plus simple serait de vérifier sur le résultat de la transformation, par exemple avec un explorateur DOM si la transformation se fait sur le navigateur.

    Pourquoi n'écrivez-vous pas plus "simplement" ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="{position()}" style="width:30px"/>
    Je vous conseillerais, sinon, de constituer un id plus unique en préfixant par une chaine constante...

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Pour moi, il ne devrait pas y avoir, dans ce que vous avez écrit, d'espaces ou sauts de ligne indésirables... ?!? Le plus simple serait de vérifier sur le résultat de la transformation, par exemple avec un explorateur DOM si la transformation se fait sur le navigateur.

    Pourquoi n'écrivez-vous pas plus "simplement" ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="{position()}" style="width:30px"/>
    Je vous conseillerais, sinon, de constituer un id plus unique en préfixant par une chaine constante...
    Bonjour,
    d'abord merci pour votre réponse,
    En fait cela je le faisais au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" id="{position()}" style="width:30px"/>
    et ça ne marchais non plus pas

    en fait pr la valeur de l'identificateur elle est unique dans mon cas, et j'ai besoin de créer dynamiquement l'id parceque j'ai un nombre dynamique de champs de texte à créer
    car j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:for-each select="//catalogue/article">
    <xsl:value-of select="designation"/>
    <input type="text" id="d{position()}" style="width:30px"/>
    </xsl:for-each>
    sur le navigateur , j'ai mes champs de text créés , je saisie dans des valeurs dans les champs, mais qd je clique sur le boutton qui déclenche la fonction qui devrait afficher ce qui est dans le champs numéro 1 : j'ai la valeur de document.getElementById("1") = null

    j'ai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(document.getElementById("1"))
    affiche null


    si vous avez une idée, de quoi ce problème pourrait venir, svp aidez moi
    Merci d'avance

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Vous avez "IE Developer ToolBar" (pour IE) ou "DOM Inspector" (pour FF) pour vérifier ce qui est généré ?

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Vous avez "IE Developer ToolBar" (pour IE) ou "DOM Inspector" (pour FF) pour vérifier ce qui est généré ?
    je viens d'installer "IE Developer ToolBar" maintenant , et effectivement le résultat généré comme id est la position, donc pas de problème de génération , mais le prob dans la récupération, mais pq ? je n'arrive pas à voir
    j'ai essayé ces 3 ecritures, aucune n'a réussit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(document.getElementById('1'))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(document.getElementById(1))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(document.getElementById("1"))
    le résultat est tjs null
    merci d'avance pr votre aide

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    "IE Developer ToolBar" m'a été très utile pr découvrir l'erreur la plus "conne" que j'ai commise dans mon existance !
    c'est que les champs de textes se trouvent dans une iframe qui est dans la page où il y a mon bouton !
    je dois donc faire : document.frames["iframe"].document.getElementById('1')


    je vous remercie encore pr votre aide
    Salut

  7. #7
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je viens de faire un test avec le valideur W3C.

    Il est formel : un attribut id doit correspondre à un nom et doit donc commencer par une lettre !

    Line 2, Column 13: value of attribute "ID" invalid: "1" cannot start a name.<body><p id="1">bonjour</p></body>
    It is possible that you violated the naming convention for this attribute. For example, id and name attributes must begin with a letter, not a digit.

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Je viens de faire un test avec le valideur W3C.

    Il est formel : un attribut id doit correspondre à un nom et doit donc commencer par une lettre !

    Line 2, Column 13: value of attribute "ID" invalid: "1" cannot start a name.<body><p id="1">bonjour</p></body>
    It is possible that you violated the naming convention for this attribute. For example, id and name attributes must begin with a letter, not a digit.
    et pour l'attribut name ? c la même régle ? parceque moi je dois avoir l'information de position pour un traitement après .
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. est ce que Talend éxecute des requetes sql très complexes?
    Par sinoun dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 10/08/2011, 14h39
  2. [xsl-fo] fo:inline qui génère des espaces en trop
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/07/2009, 15h15
  3. [XSLT/XPATH] récupération de valeur avec des espaces
    Par peyo_le_fou dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 30/07/2007, 09h01

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