Re: Apply-template en cascades ...

Morio David <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Ok, c'est bon j'ai trouvée mon soucis,
   
  <xsl:template match="../Relation[attribute::dbname='j3PartDc']/Class/Relation">
   
  le ../ n'a pas lieu d'être ici puisque je doit considérer que je suis dans le noeud courant !
  
Morio David <[email protected]> a écrit :
    Bonjour,
   
  je dispose d'un fichier XML que je transforme afin qu'il soit bien formaté pour Excel. Je ne maîtrise pas trop XSLT (ni Excel d'ailleurs !), et je suis face à un problème au niveau des définitions des <templates>et des <apply-template>. Voici le code dans les grandes lignes:
   
  <xsl:stylesheet version="1.0"
  <xsl:template match="/Data">
  <Workbook>
  <Worksheet ss:Name="Rapport">

  <Table ss:DefaultColumnWidth="60" >
   <!-- Les entêtes -->
    <Row>
     <Cell>...</Cell>
     </Row>
   <!-- Ligne COLLECTION -->
 <xsl:apply-templates select="/Data/BODY/Class/Attribute" />
 <!-- Lignes ARTICLES -->
 <xsl:apply-templates select="//Attribute[attribute::dbname='PartNumber']" />

  </Table>
</Worksheet>
</Workbook>
</xsl:template>
   
  <xsl:template match="/Data/BODY/Class/Attribute">
 <Row>
  <Cell>...</Cell>
 </Row>
</xsl:template>
   
  <xsl:template match="//Attribute[attribute::dbname='PartNumber']">
 <Row>
  <Cell></Cell>
 </Row>
 <xsl:apply-templates select="../Relation[attribute::dbname='j3PartDc']/Class/Relation" />
</xsl:template>
   
  <xsl:template match="../Relation[attribute::dbname='j3PartDc']/Class/Relation">
 <Row>
  <Cell></Cell>  
 </Row>
</xsl:template>
  
</xsl:stylesheet>
   
  Donc, dans mon template principal /Data , j'appelle un second template "//Attribute[attribute::dbname='PartNumber']"  , qui lui-même appelle un troisième template ="../Relation[attribute::dbname='j3PartDc']/Class/Relation.
   
  les lignes de mon troisième template sont bien générées, mais non formatées en <Row><Cell>...données...</Cell></Row>. 
  Donc, j'ai essayé plusieurs contournements, mais je suis tjs bloqué.
   
  Si vous pensez savoir pourquoi cela marche pas ...
   
  D'avance merci.
   
   
   
    
---------------------------------
  Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international. Téléchargez la version beta.

		
---------------------------------
 Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels pour appeler la France et l'international.Téléchargez la version beta.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.