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][Xpath] selection de l'enesemble des données via templates


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [XSLT][Xpath] selection de l'enesemble des données via templates
    bonjour ,
    on m a demande d ecrire du code en xslt alors que je n ai jamias programme de ma vie ... Du cout ,big problemes ....
    Je dois ecrire une feuille xslt pour selectioner certaines donnees et pas d autres . Concretement , mes donnees sont de la formes suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <INFO_BUREAU type="DataSet">
     
    <feutre type="Data">rouge</feutre>
    <regle type="Data">20cm</regle>
    <compas type="Data">Y</compas>
    ..... </INFO_BUREAU>
     
     
    <INFO_ORDINATEUR type="DataSet">
    <ecran type="Data">22inch</ecran>
    <dd type="Data">320go<dd>
    ...
    </INFO_ORDINATEUR>
    .....

    Je dois par exemple ecrire une feuille xls pour recuperer les donnees feutre , regle et dd , le resultat de la transfortmation
    devant donc avoir la forme suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <INFO_BUREAU type="DataSet">
     
    <feutre type="Data">rouge</feutre>
    <regle type="Data">20cm</regle>
     
    ..... </INFO_BUREAU>
     
     
    <INFO_ORDINATEUR type="DataSet">
     
    <dd type="Data">320go<dd>
    ...
    </INFO_ORDINATEUR>
    ...
    D apres ce que j ai compris , il faut ecrire une boucle ou une conditon mais cela reste tres theorique pour moi ....

    Merci de votre aide ...

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Citation Envoyé par mozart75 Voir le message
    D apres ce que j ai compris , il faut ecrire une boucle ou une conditon
    C'est une manière de faire, mais je conseillerais plutôt de faire un template sur tout ce que tu veux garder :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <xsl:template
      match="
        INFO_BUREAU |
        INFO_ORDINATEUR |
        feutre |
        regle |
        @*
      ">
      <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
      </xsl:copy>
    </xsl:template>
    Citation Envoyé par mozart75 Voir le message
    mais cela reste tres theorique pour moi ....
    Ah c'est sûr que tu vas pas magiquement savoir t'en servir comme ça sans raison. Il faut lire un truc d'apprentissage. Tutoriel, tout ça...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Selection de l ensemble des donnees
    Bonjour ,

    dans la solution precendente , l'ensemble des donnees non selectionnees reste affiche . Pour y remedier , j'ai utilise la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match=" livre| cable | " />
    .

    Cependant , le nombre de donnees non selectionnees augmentera dans le futur .
    Si @ est l ensemble des donnees a garder , y a t il une fonction informatique pour selectionner son complementaire ?

    Le but etant de ne pas reecrire le fichier xslt a chaque fois .

    Merci pour toute aide .

    salutations

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Citation Envoyé par mozart75 Voir le message
    dans la solution precendente , l ensemble des donnees non selectionnees reste affiche .
    Ah, en effet. J'ai oublié, un faut ajouter un template vide sur * :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="*" />
    Comme ça, tout ce qui n'est pas chopé par le template précédent ne fera rien du tout (sinon, ça va quand même appliquer les templates sur leurs propres contenus, ce qui fait que ça affiche leur texte.)

    Si @ est l ensemble des donnees a garder , y a t il une fonction informatique pour selectionner son complementaire ?
    @ est le sélecteur d'attribut. @* sélectionne tous les attributs. Le but étant de recopier les éléments qui t'intéressent, avec leurs attributs.
    Rien à voir, donc.

Discussions similaires

  1. Selection d'une partie des données 2D
    Par vbbarent dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/07/2011, 20h53
  2. Réponses: 4
    Dernier message: 24/10/2007, 10h43
  3. selections multiples pour validation des données
    Par Olaf69 dans le forum Excel
    Réponses: 3
    Dernier message: 30/07/2007, 14h22
  4. [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
  5. Réponses: 6
    Dernier message: 17/07/2006, 15h07

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