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 :

XML XSL : accéder au préfixe?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut XML XSL : accéder au préfixe?
    Bonjour,

    Voici mon problème qui je pense sera vite résolu... ca me parait simple mais je trouve pas la bonne info sur le net.... ni sur le forum....

    Alors j'ai du xml de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <toto:age>12</toto:age>
    et je veux juste récupérer la valeur de <toto:age> en xsl...

    j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             <xsl:template match="toto:age">
     
                <xsl:value-of select="."/>
     
    </xsl:template>
    puis ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:value-of select="toto:age"/>
    et plein d'autres combinaisons mais rien n'y fait....

    je pense que c'est assez trivial comme question m'enfin....

    merci

    PS: j'ai modifié les balises [code] sorry!

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    Je suppose que pour pouvoir utiliser toto: tu as déclaré un XML namespace avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:toto="http://totoland.net"
    ou un truc comme ça il te faut simplement rajouter cette déclaration dans le document xslt, sur la balise xsl:stylesheet par exemple ^^

    et là où ça devient ""marrant"" tu peux même te permettre de changer le préfixe, par exemple en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:toto_du_code_traite="http://totoland.net"
    tu pourra alors utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="toto_du_code_traite:age">
    pour matcher les toto:age de ton document XML, ça permet de traiter des documents qui ont recours par exemple au namespace XSL
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta réponse rapide!

    Alors en fait le problème c'est qu'il n'y a pas de déclaration de namespace dans le XML (c'est un flux rss) et je n'ai pas la possibilité de le rajouter?!!

    Dans ce cas ça ne fonctionne donc pas...

    On peux procéder autrement ou il faut que le namespace soit absolument déclarer dans le XML?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Si tu utilises la syntaxe toto:tag alors cela signifie que tu as forcément définie un XML Namespace quelque par dans ton document XML, sinon il ne peut être valide...

    PS : merci pour les balises code, ça rend le code bien plus lisible
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    lol

    j'ai pas précisé qu'il était valide!

    bon je vais voir pour ajouter cette déclaration... une tite bidouille pour que ça fonctionne!

    Merci

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par -ADX-
    j'ai pas précisé qu'il était valide!
    Dans ce cas pourquoi utiliser des namespaces ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    tout d'abord sorry en fait il y a bien les declarations de namespaces... je regardais pas au bon endroit....

    j'ai donc fait comme dit dans tes messages précédant :

    mais j'obtient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsltApplyOneTemplate: template was not compiled
    j'ai mis ça dans mon xsl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <xsl:template match="opensearch:totalResults">
                  <xsl:value-of select="totalResults"/>
            </xsl:template>

    vu que ca marche pas j'ai tenté ca aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <xsl:template match="opensearch:totalResults">
                  <xsl:value-of select="."/>
            </xsl:template>
    idem fonctionne pas et apres encore ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            <xsl:template match="opensearch:totalResults">
                  <xsl:value-of select="opensearch:totalResults"/>
            </xsl:template>
    marche pas non pu...

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tu as bien redéclaré les namespaces dans ton XSLT ? au pire, poste tes deux fichiers qu'on voit ce qui ne va pas
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 29
    Points : 16
    Points
    16
    Par défaut
    voici le xsl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:nutch="http://www.nutch.org/opensearchrss/1.0/" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/">
    <xsl:output method="html"></xsl:output>
        <xsl:template match="/rss/channel/">
            <xsl:template match="opensearch:totalResults">
                  <xsl:value-of select="opensearch:totalResults"/>
            </xsl:template>
        </xsl:template>
    </xsl:stylesheet>
    et une partie du XML :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?xml version="1.0" encoding="UTF-8"  ?> 
      -<rss xmlns:nutch="http://www.nutch.org/opensearchrss/1.0/" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/" version="2.0">
       - <channel>
         <title>Nutch: informatique</title> 
    
        <description>Nutch search results for query:  informatique</description> 
    
        <link>http://toto:8080/search.jsp?query=informatique&start=0&hitsPerDup=50&hitsPerPage=10</link>  
    
        <opensearch:totalResults>86</opensearch:totalResults> 
    
        <opensearch:startIndex>0</opensearch:startIndex> 
    
        <opensearch:itemsPerPage>10</opensearch:itemsPerPage> 
    
        <nutch:query>informatique</nutch:query>  
    
        <nutch:nextPage>http://toto:8080/opensearch?query=informatique&start=10&hitsPerDup=50&hitsPerPage=10</nutch:nextPage>  
    
      - <item>
         <title>Solution 1 - Une informatique centralisée</title>  
    
        <description><b> ... </b>Solution 1 - Une  <b>informatique</b> centralis&eacute;e Cette solution est  en<b> ... </b></description> 
    
        <link>file://020322-DDE.doc</link>  
    
        <nutch:site />  
    
        <nutch:cache>http://...</nutch:cache>  
    
        <nutch:explain>http://...</nutch:explain>
      </item>
    je voudrais afficher ce qu'il y a dans <opensearch:totalResults> soit 86 mais j'y arrive pas....

    merci

    [PS]j'ai enfin trouvé la solution!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <?xml version="1.0" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:nutch="http://www.nutch.org/opensearchrss/1.0/" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/">
    <xsl:output method="html"></xsl:output>
        <xsl:template match="*">
                  <xsl:value-of select="/rss/channel/opensearch:totalResults"/>
        </xsl:template>
    </xsl:stylesheet>
    ca fonctionne nikel maintenant!

    Merci pour votre aide!
    [/PS]


  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    lol Content que tu ais trouvé pense au Résolu (dans outils de la discussion)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

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

Discussions similaires

  1. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  2. Pd de transformation XML/XSL sur un windows 2000 server US
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/03/2003, 11h00
  3. XML + XSL + PHP
    Par ZzZerf dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/03/2003, 15h54
  4. xml -> xsl -> xml
    Par virgile04 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/10/2002, 16h53
  5. Cours en Français sur XML-XSL et XPath
    Par Community Management dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 25/04/2002, 15h46

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