Bonjour

j'ai un graphe xml du style :
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>
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
 
=a1=
*a1_1
*a1_2
:*a1_2_1
:*a1_2_2
::*a1_2_2_1
::*a1_2_2_2
*a1_3
*a1_4
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
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>&#xa;</xsl:text><xsl:apply-templates/><xsl:text>&#xa;</xsl:text>----<xsl:text>&#xa;</xsl:text>Back to [[List]]</xsl:template>
  <xsl:template match="map/node/node">=<xsl:value-of select="@TEXT"/>=<xsl:text>&#xa;</xsl:text><xsl:apply-templates/></xsl:template>
  <xsl:template match="map/node/node/node">*<xsl:value-of select="@TEXT"/><xsl:text>&#xa;</xsl:text><xsl:apply-templates/></xsl:template>
  <xsl:template match="map/node/node/node/node">:*<xsl:value-of select="@TEXT"/><xsl:text>&#xa;</xsl:text><xsl:apply-templates/></xsl:template>
  <xsl:template match="map/node/node/node/node/node">::*<xsl:value-of select="@TEXT"/><xsl:text>&#xa;</xsl:text><xsl:apply-templates/></xsl:template>
  <xsl:template match="map/node/node/node/node/node/node">:::*<xsl:value-of select="@TEXT"/><xsl:text>&#xa;</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 ?