[xsl-xml] à l'aide

à l'aide [xsl-xml] - XML/XSL - Programmation

Marsh Posté le 07-07-2005 à 20:34:53    

Jai un fichier XML du genre:
Code:
<config>
<task>
       <taskcommand type="45" name="pp" />
        <taskfile type="46" name="pp" />
</task>
</config>
 
Le nombre des paramètres contenus dans task (taskcommand, taskfile...) sont variables selon les fichiers XML.J'aimerai crée une feuille de style XSL générique qui affiche ces paramètres(genre faire une boucle ).
 
je voudrais avoir ceci afficher:
 
config
 
taskcommand
type=45 name=pp
taskfile
type=46 name=pp
 
 
 
quelqu'un peut m'aider je suis trop nulle.merci

Reply

Marsh Posté le 07-07-2005 à 20:34:53   

Reply

Marsh Posté le 07-07-2005 à 20:41:58    

<xsl:for-each select="config/task">
 type=<xsl:value-of select="@type"/> ......
</xsl:for-each>
 
non?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-07-2005 à 21:21:37    

Désolé ca n'affiche que:
type= ......  

Reply

Marsh Posté le 07-07-2005 à 23:34:35    

un truc dans le genre :
 


<xsl:template match="task|taskcommand|taskfile">
   <xsl:value-of select="name()"/> :  
   <xsl:for-each select="@*">  
      <xsl:value-of select="name()"/>=<xsl:value-of select="."/>  
      <xsl:if test="position() != last">, </xsl:if>
   </xsl:for-each>  
</xsl:template>

Reply

Marsh Posté le 08-07-2005 à 10:10:57    

benou a écrit :

un truc dans le genre :
 


<xsl:template match="task|taskcommand|taskfile">
   <xsl:value-of select="name()"/> :  
   <xsl:for-each select="@*">  
      <xsl:value-of select="name()"/>=<xsl:value-of select="."/>  
      <xsl:if test="position() != last">, </xsl:if>
   </xsl:for-each>  
</xsl:template>



Je pense qu'étant donné qu'il ne connait pas le nombre de paramètres il faudrait modifier le match de cette manière :  
 
<xsl:template match="task/*">
 
le reste m'a l'air bien.

Reply

Marsh Posté le 08-07-2005 à 12:34:05    

merci tout le monde ca marche nikel
 
voici un autre code:
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="feuille.xsl"?>
<config>
<task>
  <taskcommand type="45" name="pp" />
  <taskfile type="46" name="pp" />
  <flowtask num="1">
   <flowtask1-1 num="15">
    <flowtask1-1-1 num="15">
    </flowtask1-1-1>
   </flowtask1-1>
  </flowtask>
   
</task>
</config>  
 
 
En utilsant cette méthode j'affiche tout sauf flowtask1-1
et flowtask1-1-1 car ils sont imbriquées.
 
Ya til une méthode pour tout afficher??

Reply

Marsh Posté le 08-07-2005 à 13:23:35    

tofita_49 a écrit :

merci tout le monde ca marche nikel
 
voici un autre code:
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="feuille.xsl"?>
<config>
<task>
  <taskcommand type="45" name="pp" />
  <taskfile type="46" name="pp" />
  <flowtask num="1">
   <flowtask1-1 num="15">
    <flowtask1-1-1 num="15">
    </flowtask1-1-1>
   </flowtask1-1>
  </flowtask>
   
</task>
</config>  
 
 
En utilsant cette méthode j'affiche tout sauf flowtask1-1
et flowtask1-1-1 car ils sont imbriquées.
 
Ya til une méthode pour tout afficher??


 
tu peux modifier le match en  
<xsl:template match="task//*">
 
Ca devrait marcher.

Reply

Marsh Posté le 08-07-2005 à 16:19:35    

ca marche super
merci bp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed