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 et XPath] namespace-uri


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti Avatar de Soutou
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut [XSLT et XPath] namespace-uri
    Bonjour à tous

    Je désire filtrer les films qui sont dans un espace de nom
    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="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="./ex7b.xsl"?>
    <films xmlns:es="http://iut-blagnac.fr/xml/films">
    <film xmlns="http://iut-blagnac.fr/xml/films">
     <nom>Quatre étoiles</nom>
     <note>11</note>
     <critique>Pas terrible quand même</critique>
    </film>
    <es:film>
     <nom>Sun Shine</nom>
     <note>12</note>
     <critique>Un peu noir</critique>
    </es:film>
     
    <film>
     <nom>A bord du Darjeeling Limited</nom>
     <note>18</note>
     <critique>Splendide</critique>
    </film>
     
    </films>
    Je ne trouve pas le bon prédicat pour le faire dans la feuille XLST suivante.
    Je pense que c'est au niveau de "film[namespace-uri(.) "

    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="ISO-8859-1" 
     doctype-public="-//W3C//DTD HTML 4.01//EN"
     doctype-system="http://www.w3.org/TR/html4/strict.dtd"
     indent="yes" />
    <xsl:template match="films">
    <html>
    <body>
    <H1>Films dans l'espace de nom</H1>   
    <ul>
    <xsl:apply-templates select="film[namespace-uri(.)='http://iut-blagnac.fr/xml/films']" />
    </ul>
    </body>
    </html>  
    </xsl:template>
    ...
    D'avance merci

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : mai 2004
    Messages : 4 587
    Points : 6 763
    Points
    6 763
    Par défaut
    Bonjour,

    Citation Envoyé par Soutou Voir le message
    Je ne trouve pas le bon prédicat pour le faire dans la feuille XLST suivante.
    En fait ce n'est pas un problème de prédicat, c'est juste que tu ne spécifies pas d'espace de noms pour <film> dans l'attribut match, or dans ta source XML tous les <film> appartiennent à un espace de noms. Le prédicat n'est donc même pas évalué, le processeur XSLT considérant qu'il ne s'agit pas des mêmes balises, puisque appartenant à des espaces de noms différents.

    Il faut que tu places un alias (peu importe son libellé) devant film qui indiquera l'espace de noms auquel il appartient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:iut="http://iut-blagnac.fr/xml/films">
    ...
    <xsl:apply-templates select="iut:film" />
    ...
    <xsl:template match="iut:film">
    ...
    </xsl:template>
    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 Avatar de Soutou
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 328
    Points : 378
    Points
    378
    Par défaut
    Merci, j'étais pas allé assez loin dans mon bouquin. A++

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

Discussions similaires

  1. [xpath] namespace et xpath
    Par joker34 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/06/2007, 18h41
  2. [XSLT]Transformation et namespace
    Par Koyote dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2007, 11h39
  3. [XSLT] Syntaxe des namespaces (ns:tag) non comprise
    Par LoK dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 31/12/2006, 10h39
  4. [XSLT] Déclaration de namespace dans un doc xml
    Par Vanille dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/12/2006, 15h26
  5. [XSLT][Débutant]XPATH non reconnu par PHP5
    Par fredrik dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/09/2006, 12h13

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