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] pb avec namespace


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut [XSLT] pb avec namespace
    Bonjour,

    j'essaye de transformer ce type de fichier (graphml) :
    <xml ... />
    <graphml>
    <graph>
    <node .../>
    <node .../>
    ...
    <edge id="ab" source="a" target="b"/>
    <edge id="ac" source="a" target="c"/>
    ...
    </graph>
    </graphml>
    en un fichier texte d'arêtes source target comme suit :
    a b
    a c
    ...
    A priori ça à l'air tout simple à faire en xslt. J'ai utilisé un tutorial trouvé sur le net, mais je ne parviens pas à afficher quoi que ce soit dans mon fichier de sortie si ce n'est la ligne :

    <?xml version="1.0" encoding="utf-8"?>
    J'ai essayé plusieurs programmes mais je pense que mon chemin d'accès au sous arbre edge n'est pas correct. Je n'arrive pas à trouver une solution satisfaisante, voici ma dernière tentative :

    <?xml version="1.0" encoding="utf-8"?>
    <!--le fichier svg doit commencer par <svg> après la version xml et sans paramètres à svg-->
    <!--enlever aussi les paramètres du premier bloc g de titre-->
    <xsl:stylesheet version="1.0"
    xmlns: xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" encoding="utf-8"/>

    <xsl:template match="/">
    <xsl:apply-templates select="//edge"/>

    </xsl:template>

    <xsl:template match="edge">
    <xsl:text> id=</xsl:text>
    <xsl:value-of select="@id"/>
    </xsl:template>
    </xsl:stylesheet>
    Comme je voulais juste tester si je pouvais atteindre les attributs de edge pour l'instant je n'affiche que l'id de l'arête.

    Merci de votre aide.

  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
    plusieurs choses :

    tu as un espace aprés "xmlns:"
    il ya un saut dans xsl:stylesheet
    et tu as des commentaires avec des accent etc..

    utilise ceci et ça devrait aller :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output method="xml" encoding="utf-8"/>
     
    <xsl:template match="/"> 
    <xsl:apply-templates select="//edge"/> 
     
    </xsl:template>
     
    <xsl:template match="edge"> 
    <xsl:text> id=</xsl:text> 
    <xsl:value-of select="@id"/>
    </xsl:template>
    </xsl:stylesheet>

  3. #3
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut
    euh... bah maintenant il ne s'affiche plus rien dans mon fichier de sortie...

    une idée ?

    Ps : pour info, l'espace aprés "xmlns:" c'était pour pas que ça affiche un smiley dans le message :-)

  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 utilise quoi pour appliquer ton xsl au xml?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    graphml utilise sans doute un namespace au lieu de celui par défaut, il faut y faire référence dans le xsl et l'utiliser pour désigner les élements.
    Regarge le noeud racine du xml source, il y a sans doute xmlns=".....", c'est ça le namespace.

  6. #6
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut
    Effectivement il y a un namespace :
    xmlns="http://graphml.graphdrawing.org/xmlns/graphml"
    et je fais quoi avec ?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml" version="1.0">
      <xsl:output method="xml" encoding="utf-8"/>
      <xsl:template match="/">
        <xsl:apply-templates select="//gml:edge"/>
      </xsl:template>
      <xsl:template match="gml:edge">
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
      </xsl:template>
    </xsl:stylesheet>

  8. #8
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    Citation Envoyé par valal
    tu utilise quoi pour appliquer ton xsl au xml?
    tu utilise quoi pour la transfo?

    est ce que tu peux envoyer un xml exemple ?(complet stp)

  9. #9
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    en faite en sortie tu n'a pas un fichier xml voila pourquoi tu n'a rien
    essaye cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml" version="1.0">
      <xsl:output method="xml" encoding="utf-8"/>
      <xsl:template match="/">
        <racine><xsl:apply-templates select="//gml:edge"/></racine>
      </xsl:template>
      <xsl:template match="gml:edge">
        <elt>
        <xsl:text> id=</xsl:text>
        <xsl:value-of select="@id"/>
        </elt>
      </xsl:template>
    </xsl:stylesheet>
    si cela ne fonctionne pas fournit nous un fichier xml de départ

  10. #10
    Membre éclairé Avatar de GDMINFO
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 350
    Par défaut *** Merci ***
    Merci beaucoup, ça fonctionne très bien, maintenant je crois que je devrais parvenir à terminer cette transformation

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

Discussions similaires

  1. XSLT sur un fichier avec namespace
    Par pdelorme dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 18/05/2011, 10h38
  2. [xslt]Problème avec la fonction name()
    Par djangers dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/11/2005, 17h11
  3. [ XSLT ] probleme avec generate-id()
    Par Pi2 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 02/11/2005, 12h11
  4. xpath query pb avec namespace prefix [vb6-msxml]
    Par dodiable le dodieu dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/08/2005, 12h52
  5. [XSLT] Probleme de selection avec namespaces
    Par Ludo_xml dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/06/2005, 14h32

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