Я использую функцию translate () в скрипте xslt, чтобы удалить ненужную строку из повторяющегося элемента перед рендерингом вывода.В то время как функция перевода выполняет свою работу, она затрагивает несколько этих элементов, удаляя больше символов, чем нужно, и я не могу понять, почему это происходит.
Вот пример XML-документа:
<?xml version="1.0" encoding="utf-8"?><books><book><title>Keep this text [remove this text]</title></book><book><title>Keep this text 2 [remove this text]</title></book><book><title>Keep this text 3 [remove this text]</title></book><book><title>Keep this text 4</title></book></books>
Вот ОЧЕНЬ базовый пример XSLT, который проверяет строку [remove this text] из элемента title (эта функция вложена вцикл for-each):
<xsl:value-of select="translate(books/book/title, '[remove this text]', '')" />
Это успешно удаляет нежелательную строку и в большинстве случаев сохраняет предыдущий текст без проблем.К сожалению, в некоторых проблемах в результате вывода элемента title будет отсутствовать несколько символов (все пробелы удалены), и он будет выглядеть как «kpptt2» вместо «Keep this text 2».Кто-нибудь знает, почему это может произойти и / или производит случайности, такие как этот пример?Спасибо!