Наша GSA использует FileConnector для индексирования разных долей, которые являются объектами ссылок DFS. Я пытаюсь переписать file://filesrv01.example.com/share$/dir/file.ext
на file://R:/hare/dir/file.ext
в интерфейсе XSL.Является ли эта подстрока-after и concat нарушением моей кодировки?
Существуют а xsl:choose
элемента тесты Wich для различных протоколов, но не file://
, поэтому я предполагаю, что обработка моих исходных ссылок по умолчанию будет этот узлом:
<xsl:otherwise>
<xsl:value-of disable-output-escaping='yes' select="U"/>
</xsl:otherwise>
Мы создали новый xsl:when
узел, как это:
<xsl:when test="starts-with(U, 'file://server.example.com/share$>
<xsl:value-of disable-output-escaping='yes'
select="concat('file://R:/share/',
substring-after(U,'file://server.example.com/share$/'))"/>
</xsl:when>
Это работает почти для всех записей в нашем индексе, но это не удается, когда путь содержит немецкий умляут. После ввода, фактический и ожидаемый выход:
file://server/share$/dir/FileWithUmläut.txt
file://R:/share/dir/FileWithUmläut.txt
file://R:/share/dir/FileWithUmläut.txt
Почему по умолчанию xsl:otherwise
работает без изменения умляутов, но наш CONCAT + подстроки нет? Что-нибудь, что я мог проверить или изменить?
Редактировать # 1 В файле XSL имеется только один выходной элемент: <xsl:output method="html"/>
. Сам XSL распознается как ANSI в Notepad ++ с некоторыми Umlauts в текстах пользовательского интерфейса. Вывод в браузер - utf-8 xhtml.
Редактировать # 2 Когда я заменяю xsl:when
на следующий блок, кодировка не прерывается, и ссылка может быть открыта (не используя корень DFS, а напрямую используя unc). Из-за этого я считаю, что это не кодирование XML или XSL, спасибо за ваш вклад, тем не менее, @ MathiasMüller.
<xsl:when test="starts-with(U, 'file://server.example.com/share$/')">
<xsl:value-of disable-output-escaping='yes' select="U"/>
</xsl:when>
Я полагаю, что третья строка должна быть фактической, а вторая - ожидаемой? По-моему, это не имеет никакого отношения к 'concat' или' xsl: иначе'. Как кодируются файлы XML? Что такое кодировка таблицы стилей и атрибута кодировки 'xsl: output', если этот элемент существует? –
@ MathiasMüller Вторая и третья строки - это acutal link при копировании из Internet Explorer. Третьей (нерабочей) ссылкой в исходном источнике является 'file: // R:/share/dir/FileWithUml% C3% A4.txt' –
Это не отвечает на все мои вопросы. Вход в преобразование XML - какова его кодировка? Можете ли вы изменить кодировку таблицы стилей на UTF-8, а также указать ' ' явно? –