J'ai un document XML similaire à:
asdfasdf<b>asdf</b>
3 Réponses :
manière rapide et sale: résultat de votre échantillon sera le suivant: p> une autre approche: p> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="b">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
+1 Pour la bonne suggestion d'utiliser Copier-de code> au lieu de la valeur de code> L'affiche a dans son code. Mais je pense que faire copie-de select = "noeud (noeud ()" code> suffit pour la manière rapide et sale, pas besoin de nommer des enfants de texte et d'élément séparément avec texte () | * code>.
@Martin, j'ai d'abord écrit noeud () code>, mais ensuite reconsidéré :)
@Monksy, désolé, j'ai manqué "sans avoir à le rendre" en partie.
Vous devez échapper aux noms de balises dans le contenu, je recommanderais quelque chose comme: que vous pouvez appeler avec: p>
+1 Correct: Transformer un nœud défini dans Un noeud de texte B>. Conseil: Considérez les cas pour des éléments vides, des attributs et des commentaires (et PI si vous souhaitez le rendre complet)
Question stupide: pourquoi ne pas envelopper les données dans un bloc CDATA à la place? Y a-t-il des abdominaux?
Je voudrais que le XSLT sélectionne l'élément de contenu et montrer tout Le contenu: p>
asdfasdf<b>asdf</b>
Bonne question, +1. Oui, il y a un moyen de faire cela - voir les réponses de @ Nick-Jones et moi. :)