CJ?ごろうのサイトへようこそ!
CJ?ごろうのひとりごとかも?では、PCを楽しく快適に使うための設定やソフト、パーツ、ゲームの紹介、ゲームの攻略などに関する情報などを扱っています。
また、CJ?ごろうのひとりごとかも?で使っているCGIなども配布しています。
« 2006-11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2007-01 »
Sat 12/16 2006
Amazon Webサービス(Amazon ECS 4.0)用に用意したXSLファイルをローカルでテストしてみたのですが、文字数のカウントではまりました。
というのも、Internet Explorer 6でXSLT変換をしていたのですが、「string-length()」と「substring()」で全角と半角をどちらも1文字としてカウントします。
1バイト単位でカウントしてくれないため、単純に「string-length()」と「substring()」で文字列のカウントと切り出しをしたのでは、扱う文字列によって出力される文字列のバイト数が異なります。
それでも試しに、次のような感じで切り出してみました。
<xsl:value-of select="substring(aws:ItemAttributes/aws:Title, 1, 14 + (string-length(substring(aws:ItemAttributes/aws:Title, 1, 14)) - string-length(translate(substring(aws:ItemAttributes/aws:Title, 1, 14), ' !"#$%&&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~', ''))))" />
<xsl:if test="string-length(aws:ItemAttributes/aws:Title) > 14 + (string-length(substring(aws:ItemAttributes/aws:Title, 1, 14)) - string-length(translate(substring(aws:ItemAttributes/aws:Title, 1, 14), ' !"#$%&&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_abcdefghijklmnopqrstuvwxyz{|}~', '')))"> ...</xsl:if>
上記の記述で、Internet Explorer 6では意図した通りに変換できました。
ただ、Amazon Webサービスで変換するにはきついようです。
あらかじめ短めに文字列を切り出し済のXMLを返してくれると良いんですけどね…。
記事最終更新日:Sun 8/23 2009
written by GOROH
[その他]
[この記事のURL]
[コメント(0)]
[トラックバック(0)]
Copyright© 2006 CJ?GOROH All Rights Reserved.