Bonjour,

Cette discussion fait suite à la demande thelvin d'ouvrir un fil suite à une remarque que j'ai fait dans cette discussion:

http://www.developpez.net/forums/d13...s/#post7378375

Je disais que les attributs dans certaines opérations étaient mal supportés dans XSLT1.0 et 1.1.

A ce titre je vous recommande la lecture de ce très bon article d'IBM qui avance des arguments solides pour le choix entre elements et attributs:

http://www.ibm.com/developerworks/li...att/index.html


Voici l'exemple en question sur le quel je suis tombé lors d'un projet:
source XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<test>
	<elt cat="A">A</elt>
</test>
feuille de style 1 (plante en beauté)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:template match="/test">
		<xsl:variable name="Categorie">A</xsl:variable>
		<xsl:for-each select="./elt/[@cat=$Categorie]">	
			<xsl:text>Attribut A détecté</xsl:text>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
feuille de style 2 (fonctionne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:template match="/test">
		<xsl:variable name="Categorie">A</xsl:variable>
		<xsl:for-each select="./elt[.=$Categorie]">	
			<xsl:text>Element A détecté</xsl:text>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
je viens de faire le test avec MSXSL. Cet exemple sur lequel je suis tombé au cours d'un projet m'a laissé penser que les attributs et les éléments n'étaient pas vraient équivalents en XML vis à vis de XSLT1 et autres. Par contre dans mon souvenir ceci est corrigé en XSLT2.

On me pardonnera la pauvre qualité du code pour produire cet exemple, je fais au plus vite.