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] Probleme de structure de fichier xsl


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut [XSLT] Probleme de structure de fichier xsl
    Bonjour,

    je suis sur la fusion d'un document xml avec un fichie xsl que j'ai créé.
    Le xml contient une liste de résultats que je dois mettre en forme.

    Je débute en xsl et j'ai des soucis sur la structure du document. Je fais la fusion en php avec domxml. Mais mon code coince au niveau du xsl.

    Les résultats devants être sur plusieurs pages j' enrichi mon flux xml afin d'y placer des infos pour la gestion des pages.

    Une page de résultats type comporte:

    - le nombre de résultats (templates xsl NBANS)

    -l'affichage des résultats (templates xsl R)

    - l'affichage des liens numéros de pages de résultats pour naviguer quand le nombre de résultat est supérieur à la limite de résultatpar page. (template gestion_pages)


    Dans mon xsl, c'est ma template gestion_pages qui pose probleme.

    Les appels à NBANS et R se font dans la template SERVICE (voir code ci-dessous).
    Jusque la mon flux tml de sortie était correct.

    A la suite dès que j'insere un <call-template name="gestion_pages"/>, dans mon flux xml, j'ai l'affichage du nombre de résultats qui disparait.

    Voici le flux xml enrichi associé au xsl:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <HADESXML>
     
    <SERVICE num="1" name="ke">
        <NBDOCS value="127"/>
    	<NBANS value="10" start="1" end="10" NUMBER_OF_PAGES="2" CURRENT_PAGE="1">
    		<PAGE NUMBER="1"><![CDATA[http://localhost/test/result_xml.php?&numpage=1]]></PAGE>
    		<PAGE NUMBER="2"><![CDATA[http://localhost/test/result_xml.php?&numpage=2]]></PAGE>
    	</NBANS>
    	<RT value="71" net="55" parse="16"/>
        	<R num="0">
     
    		<TITLE>titre1</TITLE>
    		<URL>www.google.com</URL>
    		<RESUME>resume</RESUME>
     
    	</R>
            <R num="1">
    		<TITLE>titre1</TITLE>
    		<URL>www.google.com</URL>
    		<RESUME>resume</RESUME>
            </R>
            <R num="2">
    				<TITLE>titre1</TITLE>
    		<URL>www.google.com</URL>
    		<RESUME>resume</RESUME>	
            </R>
            <R num="3">
    		<TITLE>titre1</TITLE>
    		<URL>www.google.com</URL>
    		<RESUME>resume</RESUME>
    	</R>
        	<R num="4">
    	...
    	</R>
    	...
    	<R num="5">
    	</R>
     
    </SERVICE>
    <SERVICE>blabla<SERVICE>
    </HADESXML>
    voici le xsl:
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    <xsl:styl<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    <xsl:output method="html" encoding="ISO-8859-1" omit-xml-declaration="yes" indent="yes" />
     
    <xsl:template match="/">
     
        <xsl:apply-templates select="HADESXML" />
     
    </xsl:template>
    	<xsl:template match="HADESXML">
    </xsl:template>
     
    <xsl:template match="HADESXML">
        <xsl:apply-templates select="SERVICE[1]" />    
    </xsl:template>
     
    <xsl:template match="SERVICE">
      	<div>
        <xsl:apply-templates select="NBANS" />
        <br /><br />
     
        <xsl:apply-templates select="R" />
    	<br /><br />
    	<xsl:call-template name="gestion_pages"/>
    	</div>
    </xsl:template>
     
    <xsl:template match="NBANS">
        <div class="resultat">
        <xsl:text> Il y a </xsl:text>
        <xsl:value-of select="@value" />
        <xsl:text> résultat(s) correspondant(s) </xsl:text><br /><br />
        <xsl:text> Documents </xsl:text>
        <xsl:value-of select="@start" />
        <xsl:text> à </xsl:text>
        <xsl:value-of select="@end" />
        <xsl:text> sur </xsl:text>
        <xsl:value-of select="@end" /> 
        </div>
     
    </xsl:template>
     
    <xsl:template match="R">
        <div class="moteur_resultat">
        <a href="{URL}"><xsl:value-of select="@num +1" /><xsl:text 
     
    disable-output-escaping="yes">&amp;nbsp;-&amp;nbsp;</xsl:text><xsl:value-ofselect="TITLE"/></a><br />
        <xsl:value-of select="RESUME" />
        <br /><br />
        </div>
        <br />
     
    </xsl:template>
     
     
    <xsl:template name="gestion_pages" match="NBANS">
     
    <xsl:if test="NBANS/@NUMBER_OF_PAGES > 1">
      <div id="navigation_page">
     
          <xsl:if test="NBANS/@CURRENT_PAGE > 1">
     
          <li><!--
          <a><xsl:attribute name="target">_self</xsl:attribute>
          <xsl:attribute name="href"><xsl:value-of select="/HADESXML/NBANS/PAGE[/HADESXML/NBANS/@CURRENT_PAGE - 
     
    1]"/>
          </xsl:attribute>Page precedente</a>
          -->
          <span class="sep">|</span></li>
     
          </xsl:if>
     
          <xsl:for-each select="NBANS/PAGE">
     
              <xsl:choose>
    		    <xsl:when test = "/HADESXML/NBANS/@CURRENT_PAGE = position()"><li 
     
    class="sel"><xsl:value-of select="@NUMBER"/></li></xsl:when>
    		    <xsl:otherwise><li><a><xsl:attribute name="target">_self</xsl:attribute><xsl:attribute 
     
    name="href"><xsl:value-of select="."/></xsl:attribute><xsl:value-of 
     
    select="@NUMBER"/></a></li></xsl:otherwise>
    		  </xsl:choose>
     
    	  </xsl:for-each>
     
        <xsl:if test="NBANS/@CURRENT_PAGE != NBANS/@NUMBER_OF_PAGES">
     
        <li><span class="sep">|</span>
        <!--<a><xsl:attribute name="target">_self</xsl:attribute>
        <xsl:attribute name="href"><xsl:value-of select="NBANS/PAGE[NBANS/@CURRENT_PAGE + 1]"/>
        </xsl:attribute>Page suivante</a>-->
        </li>
     
        </xsl:if>    
      </div>
    </xsl:if>
     
    </xsl:template>
     
    </xsl:stylesheet>
    Merci d'avance pour m'aider à résoudre ces problemes de structures dans mon fichier xsl.

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    que fait cette ligne dans ton xsl??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          <xsl:template match="HADESXML">
    </xsl:template>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 46
    Points : 29
    Points
    29
    Par défaut
    en fait c'était un probleme de copier/coller.

    Merci d'avoir jeter un oeil à mon post. Je viens de trouver la solution. J'ai réorganiser mon xsl, et j'avais des problème de chemins pour accéder aux noeuds.

    Merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/11/2008, 12h17
  2. [XSLT] probleme de parcourt deux fichiers xml dans xsl
    Par coucouA dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 23/07/2006, 21h32
  3. [XSLT][saxon] Problème de génération de fichier texte
    Par stepd dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 19/07/2006, 10h03
  4. Réponses: 3
    Dernier message: 17/07/2006, 09h29
  5. [XSLT] Insertion du nom du fichier XML par transformation XSL
    Par stepd dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/07/2006, 12h40

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