6
votes

XSLT: analyse HTML incorporée dans XML?

sur mon site Web, j'ai XMLS avec ma page Contenu de page (généré automatiquement à partir de My DB) - qui sont affichées à l'aide de XSLT. Le problème est que cela: J'aimerais avoir un formatage dans certaines des balises XML. Par exemple, si j'ai un XML contenant un article dans un format comme celui-ci: xxx

Cependant, si je reçois simplement le contenu à l'aide de ce: Tout le formatage HTML est ignoré / perdu. Je suppose que cela se trompe pour les nœuds d'enfants XML, et non des données réelles qui résident dans le nœud de contenu.

Quel est le moyen préféré de réaliser un formatage comme ce qui est décrit ici?

Merci d'avance. < / p>


1 commentaires

Ce est la réponse réelle. Utilisez le Copie-of au lieu de la valeur de .


6 Réponses :


0
votes

codez votre code HTML lorsque vous l'intégrerez clairement dans un élémentaire ou utilisez un bloc CDATA pour préserver le texte réel. Soit fonctionner bien que dépend de l'endroit où la transformation a lieu (comme le niveau du navigateur via JS), la sortie peut être différente avec des entités codées.


1 commentaires

Bonjour, cela fait malheureusement que les tags apparaissent dans un texte brut - c'est-à-dire qu'aucune mise en forme n'est appliquée. Je l'ai réparé en utilisant . Merci quand même



7
votes
<xsl:copy-of select="content" /> 

3 commentaires

Cheers, c'était en partie le problème. :) Utilisation de la copie-de la valeur de la valeur d'une combinaison avec corrigé.


Cela me convient aussi, mais cela dépend d'avoir XHTML intégré dans le XML, pas seulement HTML. Deuxièmement, la copie d'une copie consiste à émettre le contenu de l'espace de noms du document XML source d'origine, et non à l'espace de noms que le XSL émet par ailleurs. La plupart des navigateurs Web ne se soucient probablement pas vraiment, mais si vous voyez un tas de xmlns = "..." des attributs de votre sortie, c'est pourquoi.


Old Post, m'a aidé maintenant.



0
votes

Vous pouvez modifier la génération de ce fichier XML pour mettre le contenu dans un section, qui indique à l'analyseur d'ignorer le contenu spécial dans cette section.


1 commentaires

Bonjour, cela fait malheureusement que les tags apparaissent dans un texte brut - c'est-à-dire qu'aucune mise en forme n'est appliquée. Je l'ai réparé en utilisant . Merci quand même



0
votes

Lorsque vous mettez le HTML dans le document XML, assurez-vous que tout code HTML est codé avant de la mettre dans le XML. Par exemple. xxx

deviendrait: xxx

ou utilisez un bloc CDATA de sorte que le formatage HTML n'est pas perdu.


1 commentaires

Bonjour, cela fait malheureusement que les tags apparaissent dans un texte brut - c'est-à-dire qu'aucune mise en forme n'est appliquée. Je l'ai réparé en utilisant . Merci quand même



2
votes

Je pense que votre problème est-ce: xxx pré>

Assurez-vous que votre sortie est de type HTML, P>

application/html


2 commentaires

Acclamations! Méthode de réglage = "HTML" corrigé bien. :)


Je suis content de pouvoir t'aider :).



3
votes
<xsl:value-of
select="..."
disable-output-escaping="yes"/>
This works on all browsers except Firefox.

2 commentaires

Le XSLT est parsed Server côté, donc à moins que je manque quelque chose que le navigateur devrait être sans importance? (C'était la solution pour mon problème spécifique, BTW, donc merci!)


@Nathanhornby Browersers peut analyser XML / XSLT aussi.