私はXPathでいくつかの文字列を翻訳しようとしていますが、奇妙な結果を得ています。
それが機能です:
translate(translate(translate(translate("1 day 23 hours 30 minutes 25 seconds","day","dag"),"hours","uur"),"minutes","minuut"),"seconds","seconden")
そして現在の出力は次のとおりです。
1 dag 23 uur 30 minrut 25 tcund
しかし、私が必要としているのは、 1 dag 23 uur 30 minuut 25 seconden
一度に複数の部分文字列を翻訳する特別な方法はありますか?
回答:
回答№1は2それはどうでもない translate()
動作します。翻訳するとき:
translate("minutes seconds","hours","uur")
期待される結果は以下のとおりです。
minrte ecund
実際には、最初の3つの出現を置き換えるようにプロセッサに指示しているからです。 手紙 2番目の引数では:
"h", "o", "u"
文字列 "minutes seconds"に対応する文字が含まれている場合
"u", "u", "r"
それぞれ、 除去する キャラクター "r"
そして "s"
なぜなら、それらは3番目の引数に対応する置換がないからです。
フルに交換したい場合 言葉XPath 2.0を使用している場合は、 replace()
関数。
replace(replace(replace(replace("1 day 23 hours 30 minutes 25 seconds","day","dag"),"hours","uur"),"minutes","minuut"),"seconds","seconden")