probleme de transformation d'un XML via XSLT
salut j'ai un souci en fait avec un fichier xml que j'aimerais mettre en forme
fichier initial :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
<html>
<body>blaaaaaaaaaaaa
<title>salut tout le monde</title>
<tagPerso>
<table>
<tr>
<th>entree ligne 1</th>
<td>colonne 1.1</td>
<td>colonne 2.1</td>
</tr>
<tr>
<th>ligne 2</th>
<td>colonne 2.1</td>
<td>colonne 2.2</td>
</tr>
</table>
</tagPerso>
blaaaaaaa</body>
</html> |
grace à ce fichier xslt :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="iso-8859-1" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="donnee|ligne|colonne|titre_ligne|th"/>
<!--debut u traitment :on detecte la partie à traiter-->
<xsl:template match="tagPerso/table">
<!--on place une balise donées-->
<donnee>
<xsl:call-template name="tr"/>
<xsl:apply-templates/>
</donnee>
</xsl:template>
<!--on arrive à une ligne :on remplace les balises par ce qu'il faut-->
<xsl:template match="tr" name="tr">
<xsl:for-each select="tr">
<ligne>
<xsl:value-of select="tr"/>
<xsl:call-template name="th"/>
<xsl:call-template name="td"/>
<xsl:apply-templates/>
</ligne>
</xsl:for-each>
</xsl:template>
<!--on arrive à une colonne :on remplace les balises par ce qu'il faut-->
<xsl:template match="td" name="td">
<xsl:for-each select="td">
<colonne>
<xsl:value-of select="td"/>
<xsl:apply-templates/>
</colonne>
</xsl:for-each>
</xsl:template>
<!--on arrive au titre de la ligne :on remplace les balises par ce qu'il faut-->
<xsl:template match="th" name="th">
<xsl:for-each select="th">
<titre_ligne>
<xsl:value-of select="th"/>
<xsl:apply-templates/>
</titre_ligne>
</xsl:for-each>
</xsl:template>
<!--on remplace les caractères speciaux par ce qu'il faut-->
<!--
<xsl:template name="remplacer">
<xsl:param name="caractere"></xsl:param>
<xsl:variable name="match"> /()"<>&°:</xsl:variable>
<xsl:variable name="remplacer">__0</xsl:variable>
<xsl:value-of select="translate(normalize-space($caractere),$match,$remplacer)"/>
</xsl:template>
-->
</xsl:stylesheet> |
j'arrive à avoir un fichier où les balises html sont ignorées ,cependant le contenu de ces dernieres reste dans le fichier :
fichier après une transformation XSLT :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<?xml version="1.0" encoding="ISO-8859-1"?>
blaaaaaaaaaaaa
salut tout le monde<donnee>
<ligne>
<titre_ligne>entree ligne 1</titre_ligne>
<colonne>colonne 1.1</colonne>
<colonne>colonne 2.1</colonne>
</ligne>
<ligne>
<titre_ligne>ligne 2</titre_ligne>
<colonne>colonne 2.1</colonne>
<colonne>colonne 2.2</colonne>
</ligne>
</donnee>
blaaaaaaa |
pouvez vous me dire ce qui ne va pas dans mon fichier xslt ou ce qu'il faudrait changer eventuellement pour que ça marche merci...