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 :

2XML et 1XSL


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut 2XML et 1XSL
    Bonjour,
    je dois à l'aide de deux documents XML, générer un fichier HTML (grâce à XSLT). Le soucis est que je dois comparer des données provenant des deux documents. Il me semble qu'il faut passer par des variables intermédiaires pour faire ces comparaisons efficacement, cela dit, je n'arrive pas à récupérer les variables créées dans le chemin d'un document externe.
    par exemple, avec $num comme variable:

    <xsl:value-of select="document('../gen/conf.xml')/$num"/>

    j'imagine que ceci est possible et qu'il y a juste une erreur de syntaxe mais je n'ai pas trouvé réponse .
    Merci d'avance pour vos éventuelles solutions.

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    ce n'est pas possible, en tout cas pas comme cela. Sur quelle base compares-tu tes éléments ? Selon leur position dans le XML, leur nom, un attribut ID servant de clé primaire, ... ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    le mieux c'est que je sois au plus précis:
    j'ai un document xml; une checklist qui contient des informations.
    exemple:
    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
    <checklist><choix>
    <titre>Incoming calls</titre>
    <valeur>no</valeur>
    </choix><choix>
    <titre>Off-Line</titre>
    <valeur>yes</valeur>
    </choix><choix>
    <titre>Local/Remote debiting</titre>
    <valeur>Local</valeur>
    </choix>
    ...
    </checklist>
    Je dispose d'un autre document xml, qui contient une masse d'information importante. Je materialise des tableaux avec tous les cas possibles.

    En fonction des critères du premier document xml, je veux adapter mes tableaux.En gros sélectionner que les valeurs dépendant de celles que j'ai choisi dans mon premier XML.
    Chaque <tableau> (dans le document 2) possède un élément <critere> qui me permet de retrouver à quel critère est sensible chaque tableau.

    Je dois au final afficher des tableaux en HTML.
    Je parcours les tableaux et pour chacun j'aimerais effectuer des tests sur le premier document XML et en fonction de cela choisir ce que je dois afficher.

    N'y arrivant pas(je débute en XSL/XML), j'ai tenté de passer par des variables intermédiaires... sans succès...
    Je nage un peu et j'ai pu ne pas être clair dans ces explications. N'hésitez pas à me faire part de toutes réfléxions ou questions.
    Merci.

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    précision: je ne suis pas fermé au langage XSLT. j'ai mes deux documents XML, je veux surtout en sortir des tableaux HTML. peu importe les moyens.

  5. #5
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,

    ce n'est pas possible, en tout cas pas comme cela. Sur quelle base compares-tu tes éléments ? Selon leur position dans le XML, leur nom, un attribut ID servant de clé primaire, ... ?
    Je dirais le nom.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut
    Bonjour,

    j'ai eu un problème qui ressemble un peu à ça, tu peux passer par des prédicats dans l'expression pour faire tes sélections.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:value-of select="document ( 'monDoc.xml' )/child::monEnfant[attribute::id=$comp_id]/child::nom"/>
    si ca peu t'aider

    @+

    Xavier

  7. #7
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    du coup je me suis débrouillé par un autre moyen mais je pense que ça m'aurait bien aidé

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut
    Bonjour,

    Ca m'intéresse ton autre moyen pour information, tu peux indiquer ?

    @+

    Xavier

  9. #9
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Par défaut
    Citation Envoyé par vexa
    Bonjour,

    Ca m'intéresse ton autre moyen pour information, tu peux indiquer ?

    @+

    Xavier
    idem, j'ai ce type de problème à traiter sur des documents beaucoup plus complexes et j'aimerai connaitre la manière que t'as utlisée pour t'en sortir.

  10. #10
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    j'ai fait ma sélection au sein de chaque tableau grâce à un script python qui supprimme les colonnes non désirées et je rebalance ça dans un nouveau fichier XML. Le xsl me sert seulement a piocher dans ce nouveau XML les tableaux "réduits" que je veux afficher. chaque partie de mon xml comprend un élément critere. En fonction de sa valeur, je choisis d'afficher ou non chaque partie.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut
    Bonsoir,

    Merci pour la réponse.

    Peux-tu me confirmer quelque chose ?

    Si j'ai bien compris, tes éléments critères dans ton deuxième document sont les mêmes que tes éléments de checkList dans le premier document et ta sélection est faite en comparant les deux ?

    @+

    Xavier

  12. #12
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Pour être précis, je fais un parcours de partie du deuxieme document et je regarde chaque critere. En fonction du critère, je file tester un ou des éléments dans la checklist et en fonction de ça j'affiche le tableau. je te donne un exemple simple avec un seul test : pour info, j'ai fusionné les deux documents en un seul mais je pense que l'opération doit être jouable sans fusionner avec document(truc.xml)/truc/@truc

  13. #13
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Pour être précis, je fais un parcours de partie du deuxieme document et je regarde chaque critere. En fonction du critère, je file tester un ou des éléments dans la checklist et en fonction de ça j'affiche le tableau. je te donne un exemple simple avec un seul test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xsl:if test="critere='sms_email'"> xsl:if test="/fusion/checklist/sms_email/@valeur='yes'"> xsl:call-template name="affiche"/> /xsl:if> /xsl:if>
    pour info, j'ai fusionné les deux documents en un seul mais je pense que l'opération doit être jouable sans fusionner avec document(truc.xml)/truc/@truc ps: désolé, il manque le < d'ouverture de balise mais si je les mets rien n'est affiché. Le forum à de serieux problèmes!

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut
    Bonjour,

    Super, merci pour la précision.

    @+

    Xavier

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

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