[XSLT] gérer l'absence de noeud
Bonjour,
J'ai une petite question concernant l'écritue d'un HTML via un XSL à partir de XML.
1. Le but:
créer un tableau html à partir de plusieurs XML pour ensuite importer le tableau dans Excel
2. Les données
Elles peuvent être sous la forme
Code:
1 2 3 4 5
|
<Root>
<blabla1></blabla1>
<blabla2></blabla2>
</Root> |
ou
Code:
1 2 3 4 5 6 7
|
<Root>
<blabla1></blabla1>
<blabla2></blabla2>
<blabla3></blabla3>
<blabla4></blabla4>
</Root> |
Donc dans certains XML, il y a des données que l'on ne retrouve pas dans d'autres.
3. Ce que j'ai fait
je construit le header, la première ligne du tableau et ensuite j'appelle
le template.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <xsl:template match="Root">
<html>
<head>
<title>Review</title>
</head>
<body bgColor="#FFFFFF">
<table border="1">
<tr bgColor='#DDDDFF'>
<td>Id</td>
<xsl:for-each select="$TemplateFile/Titre">
<td><xsl:value-of select="@Name"/></td>
</xsl:for-each>
</tr>
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template> |
et mes templates sont de la forme
Code:
1 2 3
| <xsl:template match="blabla1">
<td><xsl:value-of select="."/></td>
</xsl:template> |
idem avec blabla2, 3 et 4
4. Le problème
Ben si un XML ne contient pas blabla3 par exemple, dans ce cas, mon tableau est raccourci
et j'ai:
Citation:
Id..........blabla1........blabla2........blabla3...........blabla4
id1...........bla1...........bla2............bla4
id2...........bla1...........bla2............bla3...............bla4
au lieu de
Citation:
Id..........blabla1........blabla2........blabla3...........blabla4
id1...........bla1...........bla2................................bla4
id2...........bla1...........bla2............bla3...............bla4
Quelqu'un aurait-il une idée à me proposer?
Merci beaucoup d'avance pour votre aide.
Amicalement.