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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut [XSLT] Remplacer mes unites de tableaux "cm" par "*"
    Bonjour à tous,
    est-il possible en xslt dire que dans mon fichier xml, si je rencontre un tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <table>
    <tgroup cols="4">
    <colspec colname="col1" colwidth="3.40cm"/>
    <colspec colname="col2" colwidth="5.40cm"/>
    <colspec colname="col3" colwidth="3.40cm"/>
    <colspec colname="col4" colwidth="5.40cm"/>
    <tbody>
    ..
    de remplacer les unités Colwidth en cm par des *, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table>
    <tgroup cols="4">
    <colspec colname="col1" colwidth="3.40*"/>
    <colspec colname="col2" colwidth="5.40*"/>
    <colspec colname="col3" colwidth="3.40*"/>
    <colspec colname="col4" colwidth="5.40*"/>
    <tbody>
    ..
    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    l'idée est de faire un xsl qui copier tout ton xml sauf quand tu fait ton select pour copier les atributs tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    traslate(@colwidth,'cm','*')

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    J'ai déjà un fichier XSL. Est ce que je dois faire un template match ou name pour mettre le code que tu m'as filé?
    Je l'utilise comment?

  4. #4
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    tu peux envoyer ton xml globale (oû se trouve tes table etc...)

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    Par exemple avec ce code où est ce que je dois mettre que je veux des * à la place de mes cm dans mes tableaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="*">
    		<xsl:element name="{name()}">
    		<xsl:for-each select="@*">
    		<xsl:attribute name="{name(.)}"><xsl:value-of select="."/></xsl:attribute>
    		</xsl:for-each>
    		<xsl:apply-templates/>
    		</xsl:element>
    	</xsl:template>

  6. #6
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    il faut utiliser les

    mais bon, avec ton code :

    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="traslate(.,'cm','*')"/>
                                 </xsl:when>
                                 <xsl:otherwise test="name()='colwidth'">
                                      <xsl:value-of select="."/>
                                 </xsl:otherwise>
                             </xsl:choose>
                             </xsl:attribute>
    		</xsl:for-each>
    		<xsl:apply-templates/>
    		</xsl:element>
    	</xsl:template>

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    J'ai testé ta proposition mais appremment ça fonctionne pas car ma transformation xml>xslt>xml ne fonctionne plus.
    Peut être que je n'ai pas précisé que mes documents xml contiennent d'autres types d'attributs que je veux recopier tel quel.
    ce que je veux c'est juste parmi tous mes attributs dans mes fichiers xml c'est
    remplacé:
    -dans mes attributs 'Colwidth' les cm par des *
    -dans mes attributs 'Num_repere' les , par des £

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    Bonjour ,
    j'ai testé mais ça n'a pas marché. J'ai peut être oublié de préciser que mes fichier xml ont d'autres attribut que je veux afficher comme tels.
    J'ai besoin de gérer juste ces deux et le reste doit rester comme tels:
    -dans mes attributs de tableaux 'Colwidth' remplacer les cm par de *
    -dans mes attibuts de Num_repere 'Quantite' remplacer les , (exemple 5,9) par des £ (exemple 5£9)

    Merci d'avance

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Par défaut
    j'avais vu l'erreur et j'ai bien mis "translate" mais rien

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

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