Utiliser une entité HTML dans XSLT (par exemple, & nbsp;)

Quelle est la meilleure façon d’inclure une entité HTML dans XSLT?

     

celui-ci renvoie une erreur XsltParseError

Vous pouvez utiliser la section CDATA

  

ou vous pouvez décrire & nbsp dans DTD local:

  ]> 

ou utilisez simplement   au lieu de  

Il est également possible d’étendre l’approche à partir de la deuxième partie de la réponse d’ aku et d’obtenir toutes les références de caractères connues, comme ceci:

  %w3centities-f; ]> ...  −30° 

Il y a une certaine différence dans le résultat par rapport à approche. Le dernier va produire des littéraux de chaîne comme   pour tout type de sortie, même pour , et cela peut être différent de ce que vous pourriez souhaiter … Au contraire, obtenir les entités définies pour le modèle XSLT via produira toujours une sortie cohérente avec vos parameters xsl:output .

Il peut alors être judicieux d'utiliser un résolveur d'entités locales pour empêcher le moteur XSLT d'extraire les définitions d'entités de caractères d'Internet. JAXP ou les utilisateurs explicites de Xalan-J peuvent avoir besoin d’un correctif pour que Xalan-J utilise correctement le résolveur. Voir mon blog XSLT, entités, Java, Xalan ... pour le téléchargement des correctifs et des commentaires.

une autre possibilité d’utiliser des entités HTML depuis xslt est la suivante:

   

XSLT ne gère que les cinq entités de base par défaut: lt , gt , apos , et amp . Tous les autres doivent être définis comme des mentions @Aku .

celui-ci renvoie une erreur XsltParseError

Oui, et la raison en est que   n’est pas une entité prédéfinie en XML ou XSLT comme c’est le cas en HTML.

Vous pouvez simplement utiliser le caractère unicode qui   signifie:  

Maintenant qu’il y a Unicode, il est généralement contre-productif d’utiliser des entités de caractères nommées. Je recommande d’utiliser le caractère Unicode pour un espace insécable au lieu d’une entité, juste pour cette raison. Vous pouvez également utiliser l’entité   ; au lieu de l’entité nommée. L’utilisation d’entités nommées rend votre XML dépendant d’une DTD en ligne ou externe.

J’ai trouvé toutes ces solutions ont produit un personnage dans l’espace vide.

Utiliser résolu le problème pour moi; mais #x20; peut également fonctionner.

Merci pour vos informations. J’ai écrit un court article de blog basé sur ce qui a fonctionné pour moi pendant que je faisais la transformation XSLT dans un modèle du CMS Dynamicweb .

Le billet de blog est ici: Comment append des entités aux modèles XSLT .

/ Sten Hougaard

Il est nécessaire d’utiliser l’entité # x160;

Je n’ai pas eu de chance avec l’approche DOCTYPE d’Aku.

Qu’est-ce qui a fonctionné pour moi dans la transformation MSXML sur un serveur Windows 2003, était

    

Sorte d’un hybride de ce qui précède. Merci aux consortingbuteurs de Stackoverflow!

Un caractère d’espacement entre les balises de texte devrait suffire.