translate 函数

fn:translate 函数将字符串中的所选字符替换为替换字符。

语法

Read syntax diagramSkip visual syntax diagramfn:translate( source-string, original-string, replacement-string)
source-string
要转换其中的字符的字符串。

source-string 的数据类型为 xs:string,或者是空序列。

original-string
包含可转换的字符的字符串。

original-string 的数据类型为 xs:string。

replacement-string
一个字符串,它包含的字符将替换 original-string 中的字符。

replacement-string 的数据类型为 xs:string。

如果 replacement-string 的长度大于 original-string 的长度,那么 replacement-string 中的多余字符会被忽略。

Limitation of length

original-stringreplacement-string 的长度不能超过 32000 字节。

返回的值

如果 source-string 并非空序列,那么返回的值是执行下列操作时生成的 xs:string 值:
  • 对于 source-string 中出现在 original-string 中的每个字符,应将 source-string 中的字符替换为 replacement-string 中的对应字符,该字符的出现位置与 original-string 中的字符出现位置相同。 使用二进制比较来匹配字符。

    如果 original-string 的长度大于 replacement-string 的长度,那么应在 source-string 中删除出现在 original-string 中的每个字符,但 original-string 中的字符位置不必与 replacement-string 中的字符位置相对应。

    如果某个字符在 original-string 中出现多次,那么该字符在 original-string 中第一次出现的位置将确定 replacement-string 中使用的字符。

  • 对于 source-string 中未出现在 original-string 中的每个字符,应将该字符保留原状。

如果 source-string 是空序列,那么会返回零长度字符串。

示例

以下函数返回在字符串“Test literal”中将 e 替换为 o 并将 l 替换为 m 而生成的字符串。
fn:translate('Test literal','el','om')

返回的值为“Tost mitoram”。

以下函数返回在字符串文字“Another test literal”中进行以下替换后生成的字符串:A 替换为 B,t 替换为 f,e 替换为 i 并且 r 替换为 m。
fn:translate('Another test literal', 'Ater', 'Bfim')

返回的值为“Bnofhim fisf lifimal”。