Bonjour
j'ai un graphe xml du style :
Je souhaite récupérer un texte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <map> <node text="a1"> <node text="a1_1"> <node text="a1_2"> <node text="a1_2_1"> <node text="a1_2_2"> <node text="a1_2_2_1"> <node text="a1_2_2_2"> <node text="a1_3"> <node text="a1_4"> <node text="b1"> </map>
J'ai fait une xsl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 =a1= *a1_1 *a1_2 :*a1_2_1 :*a1_2_2 ::*a1_2_2_1 ::*a1_2_2_2 *a1_3 *a1_4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*"/> <xsl:output method="text" indent="no" omit-xml-declaration="yes" encoding="ISO-8859-1"/> <xsl:template match="/"><xsl:variable name="mapversion" select="map/@version"/>'''Date''' : <xsl:value-of select="map/node/@TEXT"/><xsl:text>
</xsl:text><xsl:apply-templates/><xsl:text>
</xsl:text>----<xsl:text>
</xsl:text>Back to [[List]]</xsl:template> <xsl:template match="map/node/node">=<xsl:value-of select="@TEXT"/>=<xsl:text>
</xsl:text><xsl:apply-templates/></xsl:template> <xsl:template match="map/node/node/node">*<xsl:value-of select="@TEXT"/><xsl:text>
</xsl:text><xsl:apply-templates/></xsl:template> <xsl:template match="map/node/node/node/node">:*<xsl:value-of select="@TEXT"/><xsl:text>
</xsl:text><xsl:apply-templates/></xsl:template> <xsl:template match="map/node/node/node/node/node">::*<xsl:value-of select="@TEXT"/><xsl:text>
</xsl:text><xsl:apply-templates/></xsl:template> <xsl:template match="map/node/node/node/node/node/node">:::*<xsl:value-of select="@TEXT"/><xsl:text>
</xsl:text><xsl:apply-templates/></xsl:template> </xsl:stylesheet>
Question Optimisation, c'est pas top (je ne gère pas les niveaux > 5) et je peux difficilement gérer des cas plus tordu à chaque niveau.
Je souhaiterais avoir un template dédié au "node" pur pour pouvoir faire des tests du style "node/qq chose"
Avez-vous une idée ?
Partager