技術や物事のかきとめ(旧データ)

はてなダイアリーからの移行です。もともとかつて「はてなグループ」で公開していた内容を移動しました。

文字列を置換したいのですが

【例1】"../../../hoge/" というパスを、"../../../"にしたい場合


1. translate() で対応 [通常ならOK,この文字列の場合はNG]
つまり、"hoge" を表示しない→空の文字に変換する

<xsl:value-of select="translate('../../../hoge', 'hoge', '')"/>

ところが、スラッシュを含む場合にどうするか分からないので
この方法では出来なかった。


2. substring-before() で対応
よく考えたら、"hoge"の前の文字列までを抜き出せば良い。

<xsl:value-of select="substring-before('../../../hoge', 'hoge')"/>

これで何とかできた!

=参考=
http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt10.html