Voici mon modèle:transformation XSLT du document XML Document XHTML
<xsl:template name="rec">
<xsl:for-each select="*">
<div class="{local-name()}">
<xsl:for-each select="@*">
<xsl:attribute name="data-{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:value-of select="text()" />
<xsl:call-template name="rec" />
</div>
</xsl:for-each>
</xsl:template>
un document donné comme ceci:
<test>
<item value="1">Item 1 Text</item>
<item value="2">Item 2 Text</item>
</test>
ci-dessus transform se transformer en:
<div class="test">
<div class="item" data-value="1">Item 1 Text</div>
<div class="item" data-value="2">Item 2 Text</div>
</div>
Le problème que j'ai, c'est que cette transformation ne respecte pas les nœuds de texte correctement, et je n'ai pas assez de fond avec XSLT pour figurer e comment y remédier. Voici le problème: étant donné xml comme ceci:
<para>This is a <emphasis>paragraph</emphasis> people!</para>
Je voudrais voir la sortie suivante:
<div class="para">This is a <div class="emphasis">paragraph</div> people!</div>
Le problème est que je ne reçois pas - je reçois ceci:
<div class="para">This is a <div class="emphasis">paragraph</div></div>
Notez les 'personnes' manquantes nœud de texte. Comment puis-je réparer mon XSLT ci-dessus pour me fournir la sortie dont j'ai besoin?
Je pense que je vois ce que vous faites ici.=) Cela produit effectivement l'effet que je cherche - merci beaucoup! –
+1 pour une réponse correcte. –
+1 Bonne réponse et bonne explication. –