translate 函数 (XPath)
返回第一个参数字符串,出现第二个参数字符串中的字符的位置替换为第三个参数字符串中对应位置的字符。
string translate(string, string, string)
备注
此函数提供第一个参数上的字符映射。 第二个和第三个参数说明映射的架构。
以下函数调用返回“BAr”:
translate("bar","abc","ABC")
如果第二个参数字符串中的某个字符在第三个参数字符串中的对应位置没有字符(因为第二个参数字符串长于第三个参数字符串),第一个参数字符串中出现该字符的位置将被删除。
以下函数调用返回“AAA”:
translate("--aaa--","abc-","ABC")
如果某个字符在第二个参数字符串中出现多次,第一次出现的位置确定替换字符。 如果第三个参数字符串长于第二个参数字符串,将忽略多余的字符。
如果参数不是 string 类型,将先使用 string() 函数转换为字符串,然后计算该转换的结果。
警告
作为参数传递给此函数的节点集的字符串转换可能会产生意外的结果。有关详细信息,请参阅string 函数 (XPath)。
此函数区分大小写。
示例
该示例演示前一个 translate() 表达式。
XML 文件
无;XSLT 文件调用自身。
XSLT 文件 (translate.xsl)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="translate.xsl"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
translate("bar","abc","ABC") =
<xsl:value-of select='translate("bar","abc","ABC")'/>
<br/>translate("--aaa--","abc-","ABC") =
<xsl:value-of select='translate("--aaa--","abc-","ABC")'/>
</xsl:template>
</xsl:stylesheet>
格式化输出
translate("bar","abc","ABC") = BAr translate("--aaa--","abc-","ABC") = AAA
处理器输出
<?xml version="1.0" encoding="UTF-16"?> translate("bar","abc","ABC") = BAr<br />translate("--aaa--","abc-","ABC") = AAA