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 :

Problème paramètre template match


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Problème paramètre template match
    Bonjour,

    J'ai un soucis concernant le template match.

    Mon document XML est sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="feuilledestyleDEM.xslt"?>
    <interfaceNuu versionInterface="02.00" xsi:schemaLocation="http://nuu.application.i2/ InterfaceNuu_v0200.xsd" xmlns="http://nuu.application.i2/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <entete>
    				<typeFichier>RAD</typeFichier>
    				<dateFichier>2014-10-24T11:47:09</dateFichier>
    		</entete>
    Le problème est les paramètres dans la balise <interfaceNuu> : Je ne peux pas les retirer pour le travail.

    Ma feuille de style XSLT est sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
    <xsl:template match="/">
     <html>
        <body>
            <div class="interfaceNuu">
    			<xsl:value-of select="//entete/typeFichier" />
    			<xsl:value-of select="//entete/dateFichier" />
    Si je supprime les paramètres, cela fonctionne bien.
    Mais si ils sont la, le value-of select ne renvoie plus aucune donnée, il n'arrive pas à trouver l'élément.
    Quelqu'un aurait-il une idée de comment faire sans supprimer les paramètres de interfaceNuu ?

    Merci d'avance,
    Bonne journée,

  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
    Citation Envoyé par ilzzw Voir le message
    Le problème est les paramètres dans la balise <interfaceNuu> : Je ne peux pas les retirer pour le travail.
    En fait seulement le namespace, xmlns="http://nuu.application.i2/". Les namespaces font partie du nom des choses.
    En XML, le nom d'un élément est composé de deux choses :
    - Le nom de la balise,
    - Son namespace.

    La raison pour laquelle tes selects ne marchent pas, c'est qu'ils ne cherchent pas le bon nom. Il y a le nom de la balise, <entete> et <typeFichier>, mais il n'y a pas le namespace. Donc ce que tu demandes ne sont pas les éléments qui sont là.

    La question donc, est comment faire la recherche avec le bon namespace ? La théorie d'abord.
    - Il doit être déclaré dans la stylesheet, de préférence dans <xsl:stylesheet>.
    - Il faut s'en servir dans les select.

    Comment, donc.
    - La déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:stylesheet
      version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:nuu="http://nuu.application.i2/"
      exclude-result-prefixes="nuu"
      >
    Dans xmlns:nuu j'ai pris nuu comme j'aurais pu prendre zorglub ou toto. Peu importe. Cela s'appelle un préfixe, c'est juste un raccourci pour le namespace, parce qu'écrire http://nuu.application.i2/ c'est long.

    exclude-result-prefixes sert juste à dire à XSLT que le xmlns:nuu="http://nuu.application.i2/" qu'on vient de déclarer, on ne le veut pas dans le document XHTML produit. On ne veut s'en servir que dans la stylesheet. Si tu l'enlèves tu verras ce qui se passe.

    - l'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select="//nuu:entete/nuu:typeFichier"
    Bon noms de balises, bon namespace => cette fois on demande bien les éléments qui sont là.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Effectivement, cela marche beaucoup mieux !

    J'ai oublié de dire que j'étais un grand débutant en XSL/XSLT/XPATH.

    Merci infiniment de m'avoir répondu, et surtout, merci de ne pas m'avoir donné que la solution,

    Expliquer en détail m'a permis de mieux comprendre mon erreur et le langage.

    Sur ce, bonne journée

    #Résolu !

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

Discussions similaires

  1. XSLT - Problème avec template match
    Par chris3544 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/07/2009, 08h23
  2. Problème déduction paramètre template
    Par bolhrak dans le forum Langage
    Réponses: 6
    Dernier message: 29/01/2008, 13h27
  3. Problème de map avec paramètre template
    Par bouba dans le forum Langage
    Réponses: 5
    Dernier message: 11/05/2007, 13h19
  4. Réponses: 3
    Dernier message: 22/03/2005, 09h13
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52

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