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 :

Impossible de "nommer" l'élément racine [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Impossible de "nommer" l'élément racine
    Bonjour à tous,

    Je suis face à un problème que je n'arrive pas à comprendre. Je mets en pièce jointe un fichier XML récupéré par une requête et dont je voudrais extraire des éléments.

    Voici un bout de code XSLT qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    Version <xsl:value-of select="/WMS_Capabilities/@version"/>
    </xsl:template>
    </xsl:stylesheet>
    et voici celui qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    Version <xsl:value-of select="//@version"/>
    </xsl:template>
    </xsl:stylesheet>
    J'ai fait de nombreux essais, et j'en arrive à la conclusion que je ne peux pas nommer le nœud racine WMS_Capabilities. Mais pourquoi ?

    C'est sûrement un truc tout bête, mais je débute...

    Merci !

    P.S. j'ai du changer l'extension de mon fichier XML en TXT, sinon je ne pouvais pas l'uploader (fichier non valide)... Est-ce une piste ?
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Citation Envoyé par olohoyo Voir le message
    P.S. j'ai du changer l'extension de mon fichier XML en TXT, sinon je ne pouvais pas l'uploader (fichier non valide)... Est-ce une piste ?
    Non. Le forum refuse les fichiers .xml parce qu'il est en général plus intelligent de copier/coller leur contenu dans un message, que d'attacher le fichier. Mais bon, il faut bien sûr les traiter un peu d'abord : enlever les exemples redondants, indenter correctement, bref faire en sorte qu'on puisse s'en servir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ah ? Merci pour cette explication. J'ai été trompé par ceci :

    Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css diff doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas patch pdf php pl png psd py rar sql swf tar tex txt vb xls xlsx xml xsd xsl xslt zip
    (dans "Gérer les pièces jointes")

    Par ailleurs, je comprends bien l'intérêt de modifier le fichier avant pour qu'il soit lisible. Mais ne sachant pas où est le problème lors de parsing, j'ai préféré livrer le fichier brut, tel que je le récupère. J'ai juste remplacé les codes d'accès confidentiels par des "#####".

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Tiens je n'avais pas remarqué. 'Faudra que je vérifie ça.
    Bon, de toute façon vu que tu es débutant, ça passe. Effectivement, tu peux pas savoir quel est le problème.

    C'est parce que l'élément racine a un namespace. xmlns="http://www.opengis.net/wms" indique que l'élément <WMS_Capabilities> et ses enfants sont dans le namespace http://www.opengis.net/wms sauf indication contraire.

    De ce fait, si tu veux pointer cet élément, tu dois indiquer non seulement son nom mais aussi son namespace. Sinon ça marche pas, un élément avec namespace et un élément sans namespace c'est pas la même chose.
    Reste à voir comment faire.

    En XPath, on ne peut indiquer le namespace d'un élément qu'en utilisant un préfixe, genre select="prefixe:element". Ce préfixe peut être n'importe quoi : wms: , toto: , anticonstitutionnellement: , on s'en fout. Il faut en choisir un et s'y tenir. Choisissons wms:

    On le déclare dans l'élément <xsl:stylesheet> avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:wms="http://www.opengis.net/wms"
    Puis on s'en sert avec select="/wms:WMS_Capabilities" .
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Génial ! Merci beaucoup.

    C'est donc le xmlns anonyme de ma racine (noyé au milieu de plein d'autres déclarations de namespaces) qui détermine quel est le namespace "par défaut", c'est bien ça ?

    J'aurais presque pu le trouver tout seul si je n'avais pas repoussé si longtemps ma prise de rendez-vous chez l'ophtalmo

    Merci encore !

    (gasp maintenant, je ne suis plus débutant : plus le droit à l'erreur)

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Citation Envoyé par olohoyo Voir le message
    C'est donc le xmlns anonyme de ma racine (noyé au milieu de plein d'autres déclarations de namespaces) qui détermine quel est le namespace "par défaut", c'est bien ça ?
    Oui. Et ça s'appelle bel et bien un namespace par défaut. Pas de guillemet, pas de façon de parler. C'est le terme correct.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Nickel. Je marque le sujet résolu.

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

Discussions similaires

  1. Impossible de nommer un sous élément XAML
    Par Tod_sd dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 29/04/2009, 13h03

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