私はいくつかのXSLT関数を実行していて、translate
とreplace
の2つの主な名前に出くわしました。結局のところ、両方の関数の仕事が宣言されたエンティティ(これについて詳しく教えてください)。
また、私はXSLTを書いていて、そこでは単一の値を以下のような一連の値で置き換えたいと思っています。
<div class="translate">
<xsl:value-of select="translate(current(),' ', 'XXXXX')"/>
</div>
<div class="replace">
<xsl:value-of select="replace(current(),' ', 'XXXXX')"/>
</div>
translate
はX
を1つだけ追加していますが、XXXXX
を追加しました。
誰かがバックグラウンドで何が起こっているのか私に知らせてもらえますか?
これが実際のサンプルです http://xsltransform.net/6rewNxE/2
$mapFrom
_で与えられ、_$mapTo
_で同等の位置にあるものに与えられます。$pattern
_正規表現から_$replacement
_文字列に与えられます。translate()
はXPath 1.0以降で使用できることに注意してください。 replace()
、XPath 2.0から。
したがって、あなたの例では:
translate()
は、各_' '
_(スペース)文字を 'X
'文字に置き換えます。 _$mapTo
_内の_' '
_(スペース)の同等の位置に対応する_$mapFrom
_文字は「X
」です。replace()
は、最初の_" "
_(シングルスペース)サブストリングを_"XXXXX"
_で置き換えます。リテラル_$pattern
_は、最初に出現する_" "
_(単一スペース)サブストリングに一致し、それを完全な_$replacement
_ストリングに置き換えます。Replace-functionは、文字列内の1つの文字列を別の文字列に置き換えます。文字列「abcacb」があり、「ab」を「xy」に置き換えると、「xycacb」が取得されます。
_replace("abcacb","ab","xy") = "xycabc"
_
変換関数は、文字列文字を文字で置き換えます。 「please-replace-this-string」の最初の文字は「replace-with-this-string」の最初の文字に置き換えられます。したがって、文字列「abcacb」があり、「ab」を「xy」に翻訳すると「xycxcy」を取得します。
translate("abcacb","ab","xy") = "xycxcy"
あなたの場合:
Oracle-SQL関数の説明も役立つ場合があります(基本的に同じ)。