6
votes

Tags HTML de sortie XSLT de XML

J'ai un document XML similaire à:

asdfasdf<b>asdf</b> 


1 commentaires

Bonne question, +1. Oui, il y a un moyen de faire cela - voir les réponses de @ Nick-Jones et moi. :)


3 Réponses :


2
votes

manière rapide et sale: xxx pré>

résultat de votre échantillon sera le suivant: p> xxx pré>

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>


3 commentaires

+1 Pour la bonne suggestion d'utiliser Copier-de au lieu de la valeur de L'affiche a dans son code. Mais je pense que faire copie-de select = "noeud (noeud ()" 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 () | * .


@Martin, j'ai d'abord écrit noeud () , mais ensuite reconsidéré :)


@Monksy, désolé, j'ai manqué "sans avoir à le rendre" en partie.



10
votes

Vous devez échapper aux noms de balises dans le contenu, je recommanderais quelque chose comme: xxx

que vous pouvez appeler avec: xxx


2 commentaires

+1 Correct: Transformer un nœud défini dans Un noeud de texte . 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?



1
votes

Je voudrais que le XSLT sélectionne l'élément de contenu et montrer tout Le contenu: p>

asdfasdf<b>asdf</b>

0 commentaires