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] non incrémenté sur selection


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [XSLT] non incrémenté sur selection
    Bonjour, j'ai vraiment besoin d'aide pour une transforamtion de xml vers xml

    j'essais de faire ça avec un xslt mais rien ne fonctionne... surement à cause du peu de connaissance que j'ai avec le xslt (je suis habitué au .net)

    voila j'ai un xml qui a un format du style
    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
    <transaction>
    <no_trx>12345</no_trans>
        <items>
            <cd>
                <titre>Mon cd</titre>
                <prix>12</prix>
            </cd>
            <cd>
                <titre>Mon cd 2</titre>
                <prix>24</prix>
            </cd>
            <dvd>
                <titre>Mon dvd</titre>
                <prix>12</prix>
            </dvd>
            <dvd>
                <titre>Mon livre</titre>
                <prix>12</prix>
            </dvd>
            <livre>
                <titre>Mon livre 2</titre>
                <prix>24</prix>
            </livre>
        </items>
    </transaction>
    bref xml très simple que je dois transformer en mettant pour chaque item (cd,dvd,livre) un attribue qui est un numréro incrementé... ce qui donnerait;
    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
     
    <transaction>
    <no_trx>12345</no_trans>
        <items>
            <cd id="1">
                <titre>Mon cd</titre>
                <prix>12</prix>
            </cd>
            <cd id="2">
                <titre>Mon cd 2</titre>
                <prix>24</prix>
            </cd>
            <dvd id="3">
                <titre>Mon dvd</titre>
                <prix>12</prix>
            </dvd>
            <dvd id="4">
                <titre>Mon livre</titre>
                <prix>12</prix>
            </dvd>
            <livre id="5">
                <titre>Mon livre 2</titre>
                <prix>24</prix>
            </livre>
        </items>
    </transaction>
    ca me semble très simple à faire en programmation standard mais avec xslt je ne vois pas trop comment.... quelqu'un peut m'aider SVP

    un gros merci à l'avance

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    regarde du coté de la fonction position qui suffit ici.
    Pour des choses plus complexes on utilise xsl:number

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Erwy
    regarde du coté de la fonction position qui suffit ici.
    Pour des choses plus complexes on utilise xsl:number
    haaaaaa si simple quand on sait ou chercher.... fauderait bien que je suivre un petit tutoriel xslt

    la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
    <xsl:template match="@* | node()">
    <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match = "cd|dvd|livre" > 
    	<xsl:copy>
    		<xsl:attribute name="id"><xsl:value-of select = "position()" /> </xsl:attribute>
    		<xsl:apply-templates/>
    	</xsl:copy>
    </xsl:template> 
    </xsl:stylesheet>

    merci beaucoup

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2009, 18h40
  2. Déclenchement sur select
    Par sdinot dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 02/04/2004, 11h52
  3. Trigger sur select
    Par bilo2000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/02/2004, 13h39
  4. question sur SELECT ...WHERE...IN
    Par danseur dans le forum Requêtes
    Réponses: 3
    Dernier message: 23/01/2004, 15h23
  5. Bip non sollicité sur les Edit
    Par David dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/09/2003, 20h32

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