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 :

Ouverture de documents xml secondaires


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Par défaut Ouverture de documents xml secondaires
    Je voudrais vous exposer mon pb avec la fonction document(). L'exposé est un peu long , je m'en excuse.

    J'ai un fichier principal session.xml qui spécifie 3 fichiers xml secondaires : en fait deux balises spécifient le même fichier (session_start.xml) mais il est ouvert deux fois par document() avec une racine différente spécifiée par document () /../.

    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"?>
     
     
    <index>
    	<FileSessionStart uri="/home/hadoop/Bureau/session_start.xml"/>
    	<FileSessionStop uri="/home/hadoop/Bureau/session_stop.xml" />
    	<FileTransfers uri="/home/hadoop/Bureau/session_start.xml" />
    </index>
    Les fichiers xml secondaires contiennent des infos concernant une session de transfert de fichiers


    • Session_start.xml contient de infos de debut session, et des infos sur les transferts de fichiers individuels (balises <filetransfer>..</filetransfer>).
    • Session_stop.xml contient les mêmes balises de début de session mais pas les balises de transfert de fichiers


    ex: session_start.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
    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
     
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xml"?>
     
    <SessionElem>
        <state>started</state>
        <startstop>Start</startstop>
        <sessionID>fa588ee7-78a6-483a-8cdb-a01f804b92af</sessionID>
        <direction>send</direction>
        <userstr>1c3f3239-1771-4bc0-8b32-165ae178c467</userstr>
        <errcode>0</errcode>
        <errstr>No error</errstr>
        <startTime>2011-04-06T16:42:29.117+02:00</startTime>
        <type>Session</type>
        <source>/home/mramos/aspera/DPCC/7daysForCnes</source>
        <target>/tmp/Aspera-transfert</target>
        <peer>194.199.172.209</peer>
        <userId>0</userId>
        <user>admin</user>
        <targetrate>300000000</targetrate>
        <minrate>0</minrate>
        <ratemode>adapt</ratemode>
        <secure>no</secure>
        <license>091b-2ebf</license>
        <peerlicense>091b-3dda</peerlicense>
        <filecount>1920</filecount>
        <file1></file1>
        <file2></file2>
        <filelast></filelast>
        <totalbytes>0</totalbytes>
        <totalsize>0</totalsize>
        <token></token>
        <cookie>aspera.console:957dbbd4-f7b2-459a-86b4-985c81be203a:7Days For CNES + Complete Source</cookie>
     
        <filetransfer>
            <state>unknown</state>
            <startstop>UNKNOWN</startstop>
            <id>fa588ee7-78a6-483a-8cdb-a01f804b92af-1</id>
            <size>20433</size>
            <filename>/aspera/e2es2-stageout/20110331/3245407754684465154/mdb/cu3/fl/dfle/Oga2_0000_0000.gbin</filename>
            <checksum>
                <algorithm>md5</algorithm>
                <value>785a0a0deacce5d7079865d6f3280478</value>
            </checksum>
        </filetransfer>
     
        <filetransfer>
            <state>unknown</state>
            <startstop>UNKNOWN</startstop>
            <id>fa588ee7-78a6-483a-8cdb-a01f804b92af-2</id>
            <size>593344</size>
            <filename>/aspera/e2es2-stageout/20110331/3245407754684465154/mdb/cu3/fl/odas/PrimarySource_0000_0000.gbin</filename>
            <checksum>
                <algorithm>md5</algorithm>
                <value>d1460ece2bb057fab6f883185cbc239d</value>
            </checksum>
        </filetransfer>
    .. etcetra..
    </SessionElem>
    ex session_stop.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
    34
     
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xml"?>
     
    <SessionElem>
        <state>success</state>
        <startstop>Stop</startstop>
        <sessionID>fa588ee7-78a6-483a-8cdb-a01f804b92af</sessionID>
        <direction>send</direction>
        <userstr>1c3f3239-1771-4bc0-8b32-165ae178c467</userstr>
        <errcode>0</errcode>
        <errstr>No error</errstr>
        <endTime>2011-04-06T17:05:29.452+02:00</endTime>
        <type>Session</type>
        <source>/home/mramos/aspera/DPCC/7daysForCnes</source>
        <target>/tmp/Aspera-transfert</target>
        <peer>194.199.172.209</peer>
        <userId>0</userId>
        <user>admin</user>
        <targetrate>300000000</targetrate>
        <minrate>0</minrate>
        <ratemode>adapt</ratemode>
        <secure>no</secure>
        <license>091b-2ebf</license>
        <peerlicense>091b-3dda</peerlicense>
        <filecount>1920</filecount>
        <file1>/home/mramos/aspera/DPCC/7daysForCnes/CompleteSource/mdb/cu1/integrated/CompleteSource_0000_0000.gbin</file1>
        <file2>/home/mramos/aspera/DPCC/7daysForCnes/CompleteSource/mdb/cu1/integrated/CompleteSource_0000_0002.gbin</file2>
        <filelast>/home/mramos/aspera/DPCC/7daysForCnes/3245407754684465154/mdb/cu3/fl/dfle/Oga2_0000_0000.gbin</filelast>
        <totalbytes>15012341380</totalbytes>
        <totalsize>15012341380</totalsize>
        <token></token>
        <cookie>aspera.console:957dbbd4-f7b2-459a-86b4-985c81be203a:7Days For CNES + Complete Source</cookie>
    </SessionElem>
    La feuille de style xsl est censée traiter le fichier xml principal session.xml, ouvrir les fichiers secondaires et afficher les infos suivantes dans cet ordre :

    1. infos de début de session issues de session_start.xml
    2. infos de fin de session issues de session_stop.xml
    3. infos de transfert de fichiers issue de session_start.xml


    Ce sont les templates <xsl:template match="SessionElem"> et <xsl:template match="filetransfer"> qui sont censés faire ç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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"  encoding="ISO-8859-1"/>
    
      
      
      <xsl:template match="index">
       <html>
         <body>
      	 <xsl:apply-templates/>
      	 </body>
     	</html>
      </xsl:template>
      
     <xsl:template match="FileSessionStart">
        <xsl:text>-----------------Debut de Session-----------------</xsl:text><br/><br/>
        <xsl:apply-templates  select="document(@uri)/SessionElem"/>
      </xsl:template> 
      
      <xsl:template match="FileSessionStop">
        <xsl:text>------------------Fin de Session------------------</xsl:text><br/>
        <xsl:apply-templates  select="document(@uri)/SessionElem"/>
      </xsl:template>
      
      <xsl:template match="FileTransfers">
        <xsl:text>--------------------Fichiers--------------------------</xsl:text><br/>
       <xsl:apply-templates  select="document(@uri)/SessionElem/filetransfer"/>
      </xsl:template>
      
      <xsl:template match="SessionElem">
      <xsl:text>Identification de la session</xsl:text>
              <ul>
    	      	<li><xsl:text>Session : </xsl:text><xsl:value-of select="sessionID "/></li> 
    	      	<li><xsl:text>Direction : </xsl:text><xsl:value-of select="direction "/></li>
    	     	<li><xsl:text>Debut : </xsl:text><xsl:value-of select="startTime"/></li> 
    	     	<li><xsl:text>Fin : </xsl:text><xsl:value-of select="endTime"/></li> 	     	
    	      	<li><xsl:text>Source : </xsl:text><xsl:value-of select="source"/></li>  
    	     	<li><xsl:text>Cible : </xsl:text><xsl:value-of select="target"/></li>
    	      	<li><xsl:text>Nombre de fichiers: </xsl:text><xsl:value-of select="filecount"/></li>	     	  	
    	      </ul>
              <xsl:text>Compte rendu</xsl:text>	 
    	      <ul>          
    	     	<li><xsl:text>Etat : </xsl:text><xsl:value-of select="state"/></li>
    	     	<li><xsl:text>StartSTop : </xsl:text><xsl:value-of select="startstop"/></li>
    	     	<li><xsl:text>Erreur : </xsl:text><xsl:value-of select="errsst"/></li>
    	     	<li><xsl:text>Code Erreur: : </xsl:text><xsl:value-of select="errcode"/></li>	     		     		     	
    	      	<li><xsl:text>Vitesse : </xsl:text><xsl:value-of select="targetrate"/></li> 
    	      	<li><xsl:text>Mode : </xsl:text><xsl:value-of select="ratemode"/></li>
       	      </ul>  
       </xsl:template>
    
      <xsl:template match="filetransfer">
       		<ul TYPE="circle">
           		<li><xsl:text>name : </xsl:text><xsl:value-of select="filename"/></li>
           		<li><xsl:text>ESAC prefix : </xsl:text><xsl:value-of select="substring-before(filename ,'mdb')"/></li>
           		<li><xsl:text>CNES filename : </xsl:text><xsl:value-of select="concat('mdb',substring-after(filename ,'mdb'))"/></li>
             	<li><xsl:text>id : </xsl:text><xsl:value-of select="id"/></li>      		       
            	<li><xsl:text>startstop : </xsl:text><xsl:value-of select="startstop"/></li>     		       
            	<li><xsl:text>state :  </xsl:text><xsl:value-of select="state"/></li>
            	<li><xsl:text>taille : </xsl:text><xsl:value-of select="size"/></li>
                <xsl:text>------</xsl:text>      		             		               		
      	 	</ul>
      </xsl:template>
    
    </xsl:stylesheet>
    Mais j'ai un pb : les infos de début de session (issues de session_start.xml) s'affichent bien, celles concernant les transferts de fichiers aussi, mais pas celles de fin de session issues de session_stop.xml. Ca donne ça en sortie:


    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
    <html>
    <body>
    	-----------------Debut de Session-----------------<br>
    <br>Identification de la session<ul>
    <li>Session : fa588ee7-78a6-483a-8cdb-a01f804b92af</li>
    <li>Direction : send</li>
    <li>Debut : 2011-04-06T16:42:29.117+02:00</li>
    <li>Fin : </li>
    <li>Source : /home/mramos/aspera/DPCC/7daysForCnes</li>
    <li>Cible : /tmp/Aspera-transfert</li>
    <li>Nombre de fichiers: 1920</li>
    </ul>Compte rendu<ul>
    <li>Etat : started</li>
    <li>StartSTop : Start</li>
    <li>Erreur : </li>
    <li>Code Erreur: : 0</li>
    <li>Vitesse : 300000000</li>
    <li>Mode : adapt</li>
    </ul>
    	------------------Fin de Session------------------<br>
    	--------------------Fichiers--------------------------<br>
    <ul TYPE="circle">
    <li>name : /aspera/e2es2-stageout/20110331/3245407754684465154/mdb/cu3/fl/dfle/Oga2_0000_0000.gbin</li>
    <li>ESAC prefix : /aspera/e2es2-stageout/20110331/3245407754684465154/</li>
    <li>CNES filename : mdb/cu3/fl/dfle/Oga2_0000_0000.gbin</li>
    <li>id : fa588ee7-78a6-483a-8cdb-a01f804b92af-1</li>
    <li>startstop : UNKNOWN</li>
    <li>state :  unknown</li>
    <li>taille : 20433</li>------</ul>
    <ul TYPE="circle">
    <li>name : /aspera/e2es2-stageout/20110331/3245407754684465154/mdb/cu3/fl/odas/PrimarySource_0000_0000.gbin</li>
    <li>ESAC prefix : /aspera/e2es2-stageout/20110331/3245407754684465154/</li>
    <li>CNES filename : mdb/cu3/fl/odas/PrimarySource_0000_0000.gbin</li>
    <li>id : fa588ee7-78a6-483a-8cdb-a01f804b92af-2</li>
    <li>startstop : UNKNOWN</li>
    <li>state :  unknown</li>
    <li>taille : 593344</li>------</ul>
    
    etc...
    On voit que l'on passe par le template <xsl:template match="SessionElem"> pour session_start.xml mais pas pour session_stop.xml.

    J'ai tourné et retourné le truc dans tous les sens.. rien à faire. Si quelqu'un a un peu de temps à perdre avec ce pb, ce serait super sympa

    pierre

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Most likely, n'a rien renvoyé dans le cas de session_stop.xml.

    Most likely, c'est parce que l'URL est incorrecte. (Ou si tu préfères, le fichier n'a pas le bon nom/emplacement.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Débutant] Création et ouverture d'un document xml
    Par BartRoX dans le forum C#
    Réponses: 5
    Dernier message: 11/06/2012, 11h19
  2. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44
  3. Réponses: 3
    Dernier message: 03/06/2003, 13h16
  4. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 10h23
  5. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53

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