Стандартная функция XPath:
translate($someString, $chars-to-be-replaced, $replacement-chars)
создает новую строку, в которой изменяется символ из $someString
, только это один из символов во втором аргументе - $chars-to-be-replaced
.
Из спецификации XPath 1.0 W3C :
Функция: перевод строки (строка,
строка, строка)
Функция перевода
возвращает первую строку аргумента с
появления символов в
строка второго аргумента заменена на
символ в соответствующем
позиция в строке третьего аргумента.
Например,
translate("bar","abc","ABC")
возврат
строка BAr
. Если есть
персонаж во втором аргументе
строка без символа в
соответствующая позиция в третьем
Строка аргумента (потому что второй
Строка аргумента длиннее, чем
строка третьего аргумента), затем
появления этого персонажа в
Строка первого аргумента удаляется. За
пример,
translate("--aaa--","abc-","ABC")
возвращает "AAA"
. Если персонаж встречается
более одного раза во втором аргументе
строка, то первое вхождение
определяет замену персонажа.
Если строка третьего аргумента длиннее
чем вторая строка аргумента, то
лишние символы игнорируются.
Таким образом, ваша проблема в коде, который вы не показали.