2014-09-19 1 views
0

Наша 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> 
+0

Я полагаю, что третья строка должна быть фактической, а вторая - ожидаемой? По-моему, это не имеет никакого отношения к 'concat' или' xsl: иначе'. Как кодируются файлы XML? Что такое кодировка таблицы стилей и атрибута кодировки 'xsl: output', если этот элемент существует? –

+0

@ MathiasMüller Вторая и третья строки - это acutal link при копировании из Internet Explorer. Третьей (нерабочей) ссылкой в ​​исходном источнике является 'file: // R:/share/dir/FileWithUml% C3% A4.txt' –

+0

Это не отвечает на все мои вопросы. Вход в преобразование XML - какова его кодировка? Можете ли вы изменить кодировку таблицы стилей на UTF-8, а также указать '' явно? –

ответ

0

Моя конкретная проблема исчезла, как только я использовал file:///R:/ вместо file://R:/ (дополнительный вперед слэш), но я до сих пор пытаются выяснить, почему это помогло. В GSA XSL есть фрагмент кода JavaScript для «исправления» проблем с кодировкой в ​​IE, но это не волнует, имеет ли протокол 2 или 3 косой черты.

Хотя Firefox не разрешает файловый протокол из коробки, ни один синтаксис не работает при копировании оттуда. Это заставляет меня поверить, что мой установленный IE 9 исправляет некоторые проблемы с кодировкой самостоятельно при использовании правильного префикса file:///, а Firefox - нет.

Как мы хотели бы, чтобы ссылки работали в Firefox, я продолжу поиски славы в земле юникода, преследуемой древним драконом file:/// и домам домов IE и FF.

+1

Также обратите внимание, что изменение шаблонов URL-адресов влияет на предварительный просмотр документа.Предварительный просмотр документа совпадает с точным тегом U. –

+0

Спасибо за головы, я скоро задался вопросом, почему у нас есть превью для наших сайтов, но не для файлов ... Похоже, мне нужно написать javascript для исправления PreviewData. –

 Смежные вопросы

  • Нет связанных вопросов^_^