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 :

modification xml infructueuse [XSLT 2.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut modification xml infructueuse
    Bonjour,

    je poste pour la première fois parce que j'ai un souci avec une feuille xslt qui ne donne rien.

    J'ai un fichier xml sous le format suivant :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <sparql xmlns="http://www.w3.org/2005/sparql-results#">
    <results>
    <result>
    <binding name="donnee">
    <uri>http://www.bidulechouette.com</uri>
    </binding>
    <binding name="titre">
    <literal xml:lang="fr">bazinga!!!!</literal>
    </binding>
    <binding name="emprise">
    <box>
    <point1>hdfjhfj</point1>
    <point2>fhdjsfhsdio</point2>
    </box>
    </binding>
    <binding name="extent">
    <literal>12256582</literal>
    </binding>
    </result>
    </results>
    </sparql>
    or je voudrais obtenir un csv comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'donnee';'titre';'point1';'point2';'extent'
    'http://www.bidulechouette.com';'bazinga!!!!';'hdfjhfj';'fhdjsfhsdio';'12256582'

    vous imaginez bien qu'il y a plein de petit <result> les uns à la suite des autres.

    Pour obtenir mon csv je voulais modifier le format de mon xml qui est un peu trop alambiqué et comme ça excel m'aurait mis ça en csv sans souci mais je n'y arrive pas. J'ai essayé mon xslt sur un fichier différent et ça fonctionne donc je ne dois pas arriver à sélectionner correctement mes chemins. J'ai donc besoin de votre aide.

    Voici ce que j'ai essayé en vain:

    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:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="node() | @*"/>
    		</xsl:copy>
    	</xsl:template>
     
     
     
        <xsl:template match="/binding[@name='donnee']">
     
        <xsl:for-each select="current()">
            <adresse><xsl:value-of select="uri"/></adresse>
         </xsl:for-each>
        </xsl:template>
    je débute tout juste en xslt et là je bloque. Merci d'avance pour votre aide précieuse.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    ça ne peut pas marcher si tu mets un / devant binding. <binding> n'est pas l'élément racine et ne correspondra donc jamais à /binding.

    Il suffit d'enlever ce /
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Salut,

    J'ai également essayé sans et ça n'a rien donné non plus.

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Pour quelle raison on est conduit à écrire xsl:for-each select="current()", j'ignore. Non plus comment excel sudden trouve plus facile à travailler avec adresse que url... Peu importe. On peut faire comme ça et il se prêt à être modifié pour un besoin plus précis.
    Code xslt2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="ns:binding[@name='donnee']" xmlns:ns="http://www.w3.org/2005/sparql-results#" exclude-result-prefixes="ns">
        <xsl:copy>
            <xsl:apply-templates select="@*" />
            <adresse xmlns="http://www.w3.org/2005/sparql-results#"><xsl:value-of select="ns:uri/normalize-space()"/></adresse>
        </xsl:copy>
    </xsl:template>

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    merci je vais de ce pas essayer cette solution

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    ça fonctionne très bien, merci beaucoup !!!!! Mon seul petit souci qu'il reste est de conserver mon <result/> pour chaque résultat.

  7. #7
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Mon seul petit souci qu'il reste est de conserver mon <result/> pour chaque résultat.
    La conservation des éléments result s'est prise en compte par le template d'identité, existé, je suppose. Si on veut dire de les vider, donc <result/>, on devrait ajouter un template specialisé, bien entendu.

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    c'est bon tout fonctionne, merci pour votre aide.

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

Discussions similaires

  1. [XSLT 1.0] Modification XML XSLT
    Par popcorn93 dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 31/08/2012, 15h10
  2. Modification XML à la volée
    Par jamy69 dans le forum VBScript
    Réponses: 0
    Dernier message: 11/07/2012, 12h46
  3. [FOP] Modification XML par XSL
    Par stujava dans le forum APIs
    Réponses: 4
    Dernier message: 23/03/2010, 16h15
  4. [XML - CSS] Programme de modification XML formaté
    Par Bloodscalp dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 27/09/2006, 15h37
  5. [DOM] Problème de suppression sauts de lignes après modification XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 13h46

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