- PR -

アンカーの href に全角文字を指定すると化ける

1
投稿者投稿内容
ocean
会議室デビュー日: 2001/10/07
投稿数: 7
投稿日時: 2001-10-07 12:04
次のように、index.xml の href 属性が全角になっていると、(ファルト/@.xmlの部分)
XSLT変換したときにアンカーのリンク先が化けて、リンク先に飛べなくなります。
これを回避する方法を教えてください。

環境:IE6.0 Win98SE

// index.xml

<?xml version="1.0" encoding="UTF-16"?>
<?xml-stylesheet type="text/xsl" href="index.xsl"?>
<authors>
<author name="Ab" href="AB/@.xml"/>
<author name="ファルト" href="ファルト/@.xml"/>
</authors>

// index.xsl

<?xml version="1.0" encoding="UTF-16"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<head></head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="authors">
<h2>小説</h2>
<ul>
<xsl:for-each select="author">
<li><a href="{@href}"><xsl:value-of select="@name"/></a></li>
</xsl:for-each>
</ul>
</xsl:template>

</xsl:stylesheet>

ocean
会議室デビュー日: 2001/10/07
投稿数: 7
投稿日時: 2001-10-23 16:36
調べたところ、URIにはUS-ASCIIのうち印刷可能な文字しか含めてはいけないらしく、
xsltが日本語を%xxの形式に変換するのは正しい振る舞いのようです。
この形式を解釈できないIEに問題があるのでしょうか?

とりあえず、<xsl:output method="xml"/> をxslスタイルシートに指定すると、
URIが変換されず、そのままIEで読めました。
でも、これって正しいHTML文書じゃないんでしょうね。

参考文献
Non-ASCII characters in URI attribute values

[ メッセージ編集済み 編集者: ocean 編集日時 2001-10-27 15:48 ]
1

スキルアップ/キャリアアップ(JOB@IT)