translate 函数
fn:translate 函数将字符串中的所选字符替换为替换字符。
语法
- 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-string 和 replacement-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”。