XSLTにhtmlエンティティを含める最良の方法は何ですか?
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
これはXsltParseErrorを返します
XSLTにhtmlエンティティを含める最良の方法は何ですか?
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
これはXsltParseErrorを返します
CDATA セクションを使用できます
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
または、ローカル DTD で を記述できます。
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
または単に 
代わりに使用する
次のように、 aku の回答の2 番目の部分からアプローチを拡張し、既知の文字参照をすべて取得することもできます。
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text> −30°</xsl:text>
<xsl:text disable-output-escaping="yes">
アプローチと比較すると、結果に一定の違いがあります。後者は
、すべての種類の出力のような文字列リテラルを生成<xsl:output method="text">
します。<!DOCTYPE ... <!ENTITY ...
あなたのxsl:output
設定で。
その場合は、ローカル エンティティ リゾルバを使用して、XSLT エンジンがインターネットから文字エンティティ定義を取得しないようにすることが賢明です。JAXP または明示的な Xalan-J ユーザーは、リゾルバーを正しく使用するために Xalan-J 用のパッチが必要になる場合があります。パッチのダウンロードとコメントについては、私のブログXSLT、エンティティ、Java、Xalan...を参照してください。
xslt 内から html エンティティを使用するもう 1 つの可能性は次のとおりです。
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
これはXsltParseErrorを返します
はい、その理由
は、HTML のように XML や XSLT で事前定義されたエンティティではないからです。
次を表すユニコード文字を使用できます。 
デフォルトでは、XSLT は 、 、 、 、 の 5 つの基本エンティティのみlt
をgt
処理apos
しquot
ますamp
。他のすべては@Akuメンションとして定義する必要があります。
Unicode が登場した今、名前付きの文字エンティティを使用するのは一般的に非生産的です。その理由だけで、エンティティの代わりに非改行スペースに Unicode 文字を使用することをお勧めします。 
または、名前付きエンティティの代わりにエンティティ ; を使用することもできます。名前付きエンティティを使用すると、XML がインラインまたは外部 DTD に依存するようになります。
これらの解決策はすべて、空白に Â 文字を生成することがわかりました。
を使用<xsl:text> </xsl:text>
すると問題が解決しました。しかし<xsl:text>#x20;</xsl:text>
、うまくいくかもしれません。
エンティティ #x160 を使用する必要があります。
Aku からの DOCTYPE アプローチはうまくいきませんでした。
Windows 2003 サーバー上の MSXML 変換でうまくいったのは、
<xsl:text disable-output-escaping="yes">&#160;</xsl:text>
上記のハイブリッドのようなもの。Stackoverflow の貢献者に感謝します。
情報をくれてありがとう。Dynamicweb CMSのテンプレートで XSLT 変換を行っていたときに何がうまくいったかに基づいて、短いブログ投稿を書きました。
ブログ投稿はこちら: How to add entities to XSLT templates .
/ステン・ウーガード
テキスト タグの間には 1 つのスペース文字があれば十分です。