( 半角スペース )

今週は、ちょっとした小技の紹介です。サンプルプログラムはありません。
皆さんは、HTMLを出力するときに、&nsbp; と出力したいことがありませんか?
管理人は、<table>の <td> の中身が空文字の場合に、<td>&nsbp;</td>と
出力する機会が多々あります。そうしないと、表の区切り線が表示されないので。。

結論

JSTL:Xタグは、特に注意点はありません。
XSLT変換は、だらだらと記述が必要ですが、決まり文句ですので、そのまま覚えてください。

JSTL:Xタグのポイント

そのままずばり、<td>&amp;nsbp;</td>と記述します。
「&」を出力するときは、「&amp;」 と記述するのは、HTMLの決まりごとですね。

XSLのポイント

こちらは、ちょっと長いですが、以下のように記述します。
<td><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></td>

<xsl:text>で出力すると、基本は、 HTMLエスケープされてしまうので、
<td><xsl:text >&nbsp;</xsl:text></td>の出力結果は「&amp;nbsp;」となり、
HTMLの半角スペースにはなってくれないのです。

disable-output-escaping="yes"というおまじないをすることで、
「&」を「&amp;」にエスケープされないように、抑制することができます。

まとめ

今週は、ちょっと小休止の子ネタにさせていただきました。
来週は、xsl:element を紹介してみようと思います。