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] Remplacer mes unites de tableaux "cm" par "*" [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    t'inkiète pour le translate, j'avais bien corrigé, c'est que là j'ai copier ce q t'avai mis sur le forum.
    mais là ne penses tu pas que c'est à cause des otherwise? parce qu'il existe d'autres attributs qui ne sont pas des colwidth dans les fichiers xml et avec ton code j'ai compris qu s'il rencontre dans colwidth un cm de le transformer en * sinon s'il rencontre colwidth de le copier tel quel, c'est ça?

  2. #22
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    je viens de me rendre compte d'un ptit pb:

    enleve le test dans le "otherwise".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:otherwise test="name()='colwidth'">
    ya pas de test

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    ça marche nickel! avec le code suivant, biensûr après avoir corrigé mon xsl:otherwise!
    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
     
    <xsl:template match="*">
                <xsl:element name="{name()}">
    	<xsl:for-each select="@*">
    	<xsl:attribute name="{name(.)}">
                  <xsl:choose>
                              <xsl:when test="name(.)='colwidth'">
                                    <xsl:value-of select="translate(.,'cm','*')"/>
                                 </xsl:when>
                                 <xsl:when test="name(.)='Quantite'">
                                    <xsl:value-of select="translate(.,',','£')"/>
                                 </xsl:when>
                                 <xsl:otherwise>
                                      <xsl:value-of select="."/>
                                 </xsl:otherwise>
                  </xsl:choose>
                  </xsl:attribute>
             </xsl:for-each>
             <xsl:apply-templates/>
         </xsl:element>
    </xsl:template>
    je te remercie beaucoup

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Salut,
    pourtant mon problème était presque réglé...en fait j'utilise Epic éditor pour afficher mon xml en forme wysiwyg et c'es là aussi où je fais ma transformation xml>xslt>xml. ce qui se passe c'est qu'au moment de la transformation avec le code suivant:
    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
    	<xsl:template match="*">
                <xsl:element name="{name()}">
    	<xsl:for-each select="@*">
    	<xsl:attribute name="{name(.)}">
                  <xsl:choose>
                              <xsl:when test="name(.)='colwidth'">
                                    <xsl:value-of select="translate(.,'cm','*')"/>
                                 </xsl:when>
                                 <xsl:when test="name(.)='Quantite'">
                                    <xsl:value-of select="translate(.,',','£')"/>
                                 </xsl:when>   <xsl:otherwise>
                                      <xsl:value-of select="."/>
                                 </xsl:otherwise>
                  </xsl:choose>
                  </xsl:attribute>
             </xsl:for-each>  <xsl:apply-templates/>
         </xsl:element>
    </xsl:template>
    j'ai mon fichier xml transformer nickel. mais dés que j'enregistre, les * redeviennent cm mais les £ restent comme tels nickel. A votre avis qu'est ce qui fait que mes * redeviennent des "cm" ?

  5. #25
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    je n'ai jamais vu une telle chose. mais le caractere '*' est utilisé dans les tableaux de type CALS de la même maniére que toi tu l'utilise. si tu n'arrive pas à trouver de solution je ne peux que te conseiller d'opter pour un autre caractére.

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Bonjour à tous!
    Merci Valal, en fait c'était beaucoup plus compliqué que ça, parce que mon xslt est utilisé dans un progiciel, j'avais omis de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" />
    .
    Avec ça j'ai pas à priori besoin d'enregistrer mon fichier transformé.
    C'est ok

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XSLT] remplacer le contenu d'un noeud
    Par casgr1 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 29/06/2006, 09h50
  2. [XSLT] probleme pour faire des tableaux html
    Par Lockless dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 16/06/2006, 16h04
  3. [XSLT] remplacement de noeuds de manière récursive
    Par daniel_r dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/10/2005, 20h13
  4. [XSLT ]remplacement d un caractere par son code
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/09/2005, 16h26
  5. [XSLT] Remplacer par des caractères spéciaux
    Par OXyGN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/07/2005, 17h30

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