Bonjour,
J'ai un script xsl qui marche bien avec un JDK 1.4 et qui ne marche plus en JDK 1.5. (Je suis un peu perdu dans les versions du moteur de transformation).
Pour cerner le problème, je l'ai reproduit sur un petit exemple.
Voici mon document XML :
Voici mon script XSL (qui utilise la "méthode MUENCH") :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="ISO-8859-1"?> <catalog> <cd year="1985"> <title>CD number 1</title> </cd> <cd year="2006"> <title>CD number 2</title> </cd> <cd year="1985"> <title>CD number 3</title> </cd> <cd year="2000"> <title>CD number 4</title> </cd> </catalog>
J'ai aussi un script ant pour faire le travail :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:key name="y" match="@year" use="."/> <xsl:template match="/"> <xsl:for-each select="//cd/@year[generate-id(.)=generate-id(key('y', .)[1])]"> <xsl:sort select="." data-type="number"/> year:<xsl:value-of select='.'/> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Avec un JDK 1.4 j'obtiens bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="ISO-8859-1"?> <project name="report" default="report" basedir="."> <target name="report"> <echo message="xslt" /> <xslt in="catalog.xml" out="report.html" style="transfo.xsl" force="yes"> </xslt> </target> </project>
Mais en java 5 :<?xml version="1.0" encoding="UTF-8"?>
year:1985
year:2000
year:2006
Quelqu'un sait-il pourquoi cette différence ? Comment corriger pour que ça marche dans mes deux environnements ? Et quelle version de moteur j'utilise ?<?xml version="1.0" encoding="UTF-8"?>
Merci beaucoup
Bernard
Partager