, comment remplacer une pause de ligne (
) avec un élément successif
J'essaie de transformer un élément code> avec à partir du précédent code> J'espérais simplement remplacer tout code> ouvre un
code> dans plusieurs
code> dans
<para>
<alinea>
subtext
</alinea>
<alinea>
some more text
</alinea>
<alinea>
some more subtext
</alinea>
</para>
3 Réponses :
J'ai trouvé un moyen (sale?) de remplacer Quelque chose de plus joli? P> p> code> avec
alinea>
Je serais heureux d'avoir une explication sur le vote en direct, car la solution fonctionne parfaitement! :)
Je doute toute réponse qui utilise DOE pour créer un balisage.
Proby Vous pouvez utiliser quelque chose comme ceci:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="p"> <para> <xsl:apply-templates/> </para> </xsl:template> <xsl:template match="text()"> <aline> <xsl:value-of select="."/> </aline> </xsl:template> <xsl:template match="br"/> <xsl:template match="div"> <blockquote> <xsl:value-of select="."/> </blockquote> </xsl:template> </xsl:stylesheet>
J'anticipe que votre solution mettra en place bonjour monde em> p> code> entraînera
Ceci est assez facile à faire dans XSLT 2.0:
<xsl:template match="p"> <para> <xsl:for-each-group select="node()" group-starting-with="br"> <alinea> <xsl:copy-of select="current-group()[not(self::br)]" /> </alinea> </xsl:for-each-group> </para> </xsl:template>
Pouvez-vous s'il vous plaît fournir une entrée XML?
fait dans la question. Merci.
Et si l'entrée XML contient d'autres éléments, E.G: abc div> p> code>?
sous-texte
Quelque plus de texte
Quelque plus de texte
Semble travailler, j'ajouterais simplement un modèle pour code>: xsltfiddle.liberty-development.net/jyh9rmd/1
Des questions telles que ceci doivent être étiquetées "XSLT 1.0" ou "XSLT 2.0". Les solutions utilisant des constructions 2.0 sont généralement beaucoup plus faciles, mais tout le monde (malheureusement) n'a accès à un processeur XSLT 2.0 (ou 3.0).
C'est XSLT 2.0 en effet. Merci.