xsl:apply-templates select="*"
I have a xml like this
<class>class <name>PAL_c</name>
<block>{<private type="default">
</private><public>public:
<comment>//<text> Leer una entrada</text></comment>
<function_decl><type><name>void</name></type> <name>PAL_Leer</name> <parameter_list>(<param><decl><type><name>PAL_Sepa rador_t</name>*</type> <name>separador_p</name></decl></param>, <param><decl><type><name>bool</name>*</type> <name>finDeFichero_p</name></decl></param>)</parameter_list>;</function_decl>
</public><private>private:
<decl_stmt><decl><type><name>char</name></type> <name><name>PAL_texto</name><index>[<expr><name>PAL_MAXCAR</name><operator>+</operator>1</expr>]</index></name></decl>;</decl_stmt>
</private>}</block>;</class>
The need an output like this:
<span class="class"><span class="key">class </span><span class="name">PAL_c</span>
<span class="block">{<span class="private"><span class="key">
</span></span><span class="public"><span class="key">public:
</span><span class="comment">//<span class="text"> Leer una entrada</span></span>
<a name="PAL_Leer"></a><span class="function_decl"><span class="type"><span class="name">void</span></span> <span class="name">PAL_Leer</span> <span class="parameter_list">(<span class="param"><span class="decl"><span class="type"><span class="name">PAL_Separador_t</span>*</span> <span class="name">separador_p</span></span></span>, <span class="param"><span class="decl"><span class="type"><span class="name">bool</span>*</span> <span class="name">finDeFichero_p</span></span></span>)</span>;</span>
<span class="private"><span class="key">private:
</span><span class="decl_stmt"><span class="decl"><span class="type"><span class="name">char</span></span> <span class="name"><span class="name">PAL_texto</span><span class="index">[<span class="expr"><span class="name">PAL_MAXCAR</span><span class="operator">+</span>1</span>]</span></span></span>;</span> <span class="comment">//<span class="text"> texto, terminado en nulo</span></span>
</span>}</span>;</span>
My xsl is like this:
<xsl:template match="class">
<xsl:variable name="clase" select="name"/>
<span class="class">
<xsl:call-template name="key"/>
<xsl:apply-templates />
</span>
</xsl:template>
<xsl:template name="key">
<span class="key"><xsl:value-of select="text()"/></span>
</xsl:template>
But with my xsl, for example the node "class" show 2 times:
<span class="class"><span class="key">class </span>class <span class="name">PAL_c</span>
<span class="block">{<span class="private"><span class="key">
</span></span><span class="public"><span class="key">public:
</span>public: ...........................
I tested with <xsl:apply-templates select="*" /> insted of <xsl:apply-templates /> , but with "*" not shows the other node text().
Somebody can help me? I do not what to do?
|