RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
[xsl]imbrication de balise
Nass2, le jeu. 16 avr. 2009 à 11:56:49
Bonjour,
j'ai un problème avec l'imbrication de balise en xsl.
je m'explique : j'ai un fichier xml comme suis :

<Worksheet>
<Table>
<Row>
<Cell><Data>1</Data></Cell>
<Cell><Data>Menu 1</Data></Cell>
</Row>
<Row>
<Cell><Data>2</Data></Cell>
<Cell><Data>Sous Menu 1.1</Data></Cell>
</Row>
<Row>
<Cell><Data>2</Data></Cell>
<Cell><Data>Sous Menu 1.2</Data></Cell>
</Row>
<Row>
<Cell><Data>2</Data></Cell>
<Cell><Data>Sous Menu 1.3</Data></Cell>
</Row>
<Row>
<Cell><Data>3</Data></Cell>
<Cell><Data>Sous Menu 1.3.1</Data></Cell>
</Row>
</Table>
</Worksheet>


le but est de la formater avec un fichier xsl pour obtenir un menu

<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version="1.0">
<xsl:output method="xml" indent="yes" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" encoding="UTF-8"/>

<xsl:template match="/Worksheet">
<xsl:variable name="nbLigne">
<xsl:value-of select="count(Table/Row)"/>
</xsl:variable>
<div id="menu">
<div id="menu-titre">
MENU
</div>
<div id="menu-contenu">
<ul>
<xsl:for-each select="Table/Row">
<li>
<xsl:variable name="rang" select="Cell[position() = 1]/Data" />
<xsl:if test="position() = 1">
<xsl:variable name="rangprec" select="1" />
</xsl:if>
<xsl:if test="rang > rangprec">
<ul>
</xsl:if>
<li><span>
<xsl:value-of select="Cell[position() = 2]/Data" />
</span>
<xsl:if test="rang = rangprec">
</li>
</xsl:if>
<xsl:if test="rang < rangprec">
</ul></li>
</xsl:if>
<xsl:variable name="rangprec" select="Cell[position() = 1]/Data" />
</xsl:for-each>
</ul>
</div>
</div>

</xsl:template>
</xsl:stylesheet>


le problème ce situe au niveau de l'imbrication des balises <ul> ou <li> avec les balise <xsl:if> et </xsl:if> en effet le xsl nécessite que les balises ouvertes soit fermé en l'occurrence elles le sont mais pas au sein de le même imbrication

Pour ce qui est du message d'erreur obtenu (avec le moteur xsl de php) :
Warning: DOMDocument::load() [domdocument.load]: Opening and ending tag mismatch: ul line 21 and xsl:if in file:menu.xsl, line: 22 in traitement.php on line 108

quelqu'un peut m'aider
Merci d'avance pour vos réponsesConfiguration: Windows Vista
Firefox 3.0.8
Version Web
Réalisé par RedShift
no save