XSLTの実体参照

前回に続き某Webサービスに挑戦中。
返されてきたXMLを使用し画像をHTML表示しようとするがうまくできない。
XSLT変換されたHTMLソースを見てみると

<img src=”http://sun.d-064.com/include/implession.php?flag1=samnail1&amp;amp;pid=4565″>

となっていた。
問題は、「&amp;amp;」の部分。
ここは「&」とならなければならない。
# ちなみに”&”の実体参照は”&amp;”となる。
これをXSLTで

<xsl:element name=”img”>
<xsl:attribute name=”src”><xsl:value-of select=”ImageUrlSmall” /></xsl:attribute>
</xsl:element>

と書き変換していた。
変換結果は「&amp;amp;」。
xsl:value-ofの属性としてdisable-output-escaping=”yes”を指定すると実体参照を変換してくれるらしいが、何故かxsl:attributeの属性値として使用すると実体参照がそのまま残ってしまう。
# xsl:attributeの外で使用すると普通に変換(&amp;→&)される。
仕方ないので、↓こんな感じで変換することにした。

<xsl:text disable-output-escaping=”yes”><img src=”</xsl:text>
<xsl:value-of select=”ImageUrlSmall” disable-output-escaping=”yes”/>
<xsl:text disable-output-escaping=”yes”>”&gt;</xsl:text>

これで、正しく「&amp;」と変換され画像表示ができるようになった。


Tagged:

3 Comments

  1. jzadrift 2月 24, 2006 3:46 am  返信

    ねぇ、いつも見てるんだけど内容が難しすぎて全然意味がわかんないよぉ。
    最近ちょっと(本当にちょっとだけ)勉強始めたからいつか分かる日が来るのかな?
    いや、多分こないな。

  2. osada 2月 25, 2006 12:25 am  返信

    > ねぇ、いつも見てるんだけど内容が難しすぎて全然意味がわかんないよぉ。
    ブログタイトルの通り「自己満足」の日記なんで。。
    # ちなみに、普通の日記は別サイトで書いてるよ。

  3. jzadrift 2月 25, 2006 2:34 am  返信

    あれ?普通の日記もあるの?そっちも教えてよぉ。というかむしろそっちを見たい。だってこっち難しいんだもん・・・。

Leave a comment

メールアドレスが公開されることはありません。

CAPTCHA


*