/ / XPath:複数の文字列を翻訳するには? - xml、xpath、xpath-2.0

XPath:複数の文字列を翻訳する方法 - xml、xpath、xpath-2.0

私は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")