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 :

[XSL 1.0] Output vide pour XML valide !?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut [XSL 1.0] Output vide pour XML valide !?
    Tout d’abord, je salue tous les développeurs de ce Forum, qui m’a beaucoup aidé au cours de mon développement.

    Je suis un nouveau posteur, mais cela va faire un mois que je lis attentivement les threads de ce forum.

    Présentation : Je suis actuellement stagiaire en informatique financière dans un groupe aéronautique et une partie de ma mission est d’extraire de façon automatique des données XML issues de Crystal Reports, pour les transformer en HTML en utilisant XSLT.

    PS : J’ai simplifié et randomisé mon code par souci de clarté et de compréhension.

    Voila, je procède par deux transformation successives d’un XML par deux XSL en chaine avec XSLTProc de PHP5.

    La première transformation s’opère sans problèmes. Il s’agit en fait d’un « rebalisage » ou je vais changer la manière dont l’arbre XML du premier document est construit et ajouter des balises plus compréhensibles.

    Mon nouvel arbre XML simplifié donne ça :

    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
     
    <?xml version="1.0" ?>
    <?xml-stylesheet type="text/xsl" href="crashtest.xsl"?>
    <GUS_Relaxor 
    xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
    xmlns:cr="urn:crystal-reports:schemas"
    xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" 
    xmlns:o="urn:schemas-microsoft-com:office:office" 
    xmlns:x="urn:schemas-microsoft-com:office:excel" 
    xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
    xmlns:html="http://www.w3.org/TR/REC-html40">
    <Tru Code="bri_gu">
     	<GU Nom="666">
      		<Titre_GU>666</Titre_GU> 
    			<Tableau>
     				<Ligne>
      					<Cellule Type="String" Nom="serveur">TTP</Cellule> 
      					<Cellule Type="String" Nom="account">99586</Cellule> 
      					<Cellule Type="Number" Nom="moyenne">128.3</Cellule> 
     			 		<Cellule Type="Number" Nom="eval">1569</Cellule> 
     					<Cellule Type="Number" Nom="periode">98476</Cellule> 
     				</Ligne>
    			</Tableau>
    			<Tableau>
    				<Ligne>
      					<Cellule Type="String" Nom="serveur">MOP</Cellule> 
      					<Cellule Type="String" Nom="account">85948</Cellule> 
      					<Cellule Type="Number" Nom="moyenne">2598</Cellule> 
     			 		<Cellule Type="Number" Nom="eval">65</Cellule> 
     					<Cellule Type="Number" Nom="periode">8475</Cellule> 
     				</Ligne>
    			</Tableau>
    	</GU>
    	<GU Nom="EVA">
      		<Titre_GU>EVA</Titre_GU> 
    			<Tableau>
     				<Ligne>
      					<Cellule Type="String" Nom="serveur">LAT</Cellule> 
      					<Cellule Type="String" Nom="account">3254</Cellule> 
      					<Cellule Type="Number" Nom="moyenne">4859</Cellule> 
     			 		<Cellule Type="Number" Nom="eval">68</Cellule> 
     					<Cellule Type="Number" Nom="periode">6854</Cellule> 
     				</Ligne>
    			</Tableau>
    			<Tableau>
     
    				<Ligne>
      					<Cellule Type="String" Nom="serveur">TEP</Cellule> 
      					<Cellule Type="String" Nom="account">9854</Cellule> 
      					<Cellule Type="Number" Nom="moyenne">3256</Cellule> 
     			 		<Cellule Type="Number" Nom="eval">874</Cellule> 
     					<Cellule Type="Number" Nom="periode">658</Cellule> 
     				</Ligne>
    			</Tableau>
    	</GU>
    </Tru>
    </GUS_Relaxor>
    Lorsque j’essaye de le re-process avec une nouvelle feuille XSL, le nouvel Output XML est vide, mise à part la nouvelle balise contenant les namespaces (ici la balise <test>).

    Nouvelle feuille 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
     
    <?xml version="1.0"?>
     
    <xsl:stylesheet 
     
    				xmlns:xsl = 'http://www.w3.org/1999/XSL/Transform'
    				xmlns:cr = 'urn:crystal-reports:schemas'
    				xmlns:xsi = 'http://www.w3.org/2000/10/XMLSchema-instance'
    				xmlns = "urn:schemas-microsoft-com:office:spreadsheet"
    				xmlns:o = "urn:schemas-microsoft-com:office:office"
    				xmlns:x = "urn:schemas-microsoft-com:office:excel"
    				xmlns:ss = "urn:schemas-microsoft-com:office:spreadsheet"
    				xmlns:html = "http://www.w3.org/TR/REC-html40"
                    version = "1.0" >
     
     
    <xsl:output method="xml"/>
     
    <xsl:template match="/">
    <test>
     
    <xsl:for-each select="//Tableau">
    <xsl:value-of select="Cellule"/>
    </xsl:for-each>
     
    </test>	
    </xsl:template>
     
    </xsl:stylesheet>

    Je veux préciser que ce n’est pas le parseur XSLT PHP qui ne marche pas, car j’ai le même problème avec le parseur d’IE6 etc. et pour d’autres doc XML ça marche bien.

    En fait j’ai l’impression ma feuille XSL ne tien pas compte des balises du XML et ne les voie pas dans le XML source.

    Problème de namespaces ? Je sèche complet !


    J’espère avoir été assez claire dans mon approche du problème pour que ce soit compréhensible, je remercie d’avance toute les bonnes âmes qui aurait le courage de lire ce thread et d’y répondre.

    @++

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Pas plus de succès comme ça :

    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
     
    <?xml version="1.0"?>
     
    <xsl:stylesheet 
    				xmlns="urn:schemas-microsoft-com:office:spreadsheet"
    				xmlns:xsl = 'http://www.w3.org/1999/XSL/Transform'
                    version = "1.0" >
    <xsl:output method="html"/>
     
    <xsl:template match="/">
    <body>
     
    <xsl:for-each select="//GU">
    <table>
    <tr>
    <xsl:for-each select="Tableau/Ligne/Cellule">
    <td>
    <xsl:value-of select="text()"/>
    </td>
    </xsl:for-each>
    </tr>
    </table>
    </xsl:for-each>
     
    </body>	
    </xsl:template>
     
    </xsl:stylesheet>

Discussions similaires

  1. [xml + xsl] détection d'élément vide
    Par tut dans le forum XSL/XSLT/XPATH
    Réponses: 20
    Dernier message: 11/05/2007, 10h44
  2. [XSLT] Problème pour : XML + XSLT(ou XSL) = XML
    Par jenfree dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 18/04/2007, 17h28
  3. ActionErrors vide pour mes validator-rules
    Par anayathefirst dans le forum Struts 1
    Réponses: 11
    Dernier message: 24/01/2007, 01h19
  4. [outil] cherche outil linux pour xml/xsl avec pretty print
    Par Merfolk dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 26/07/2006, 17h48
  5. demande aide pour XML/XSL
    Par Jarod51 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/01/2006, 19h10

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