ссылки в HTML
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
ссылки в HTML
накидал небольшой шаблон XSL на основе тех, что есть по умолчанию.
все работает за исключением ссылок.
Из таблицы считываются относительные пути к файлам, в html они отображаются ссылками и открываются, НО с ошибкой: "Не удается найти ..... проверьте правильность пути или адреса в Интернете"
путь выглядит, как кракозябра. (Пути кирилличные, но и кадировку я использую utf -8). Если пути переименовать на англ, то все работает.
Вопрос, как оставить работающие ссылки на русском?
все работает за исключением ссылок.
Из таблицы считываются относительные пути к файлам, в html они отображаются ссылками и открываются, НО с ошибкой: "Не удается найти ..... проверьте правильность пути или адреса в Интернете"
путь выглядит, как кракозябра. (Пути кирилличные, но и кадировку я использую utf -8). Если пути переименовать на англ, то все работает.
Вопрос, как оставить работающие ссылки на русском?
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: ссылки в HTML
Символы за исключением латинских в URL (чем является ссылка) поддерживаются разнообразными костылями, и UTF-8 вам, естественно, не поможет. Символы должны быть закодированы в виде так называемой URL-encoded строки.
http://en.wikipedia.org/wiki/Percent-encoding
http://www.w3schools.com/tags/ref_urlencode.asp
http://en.wikipedia.org/wiki/Percent-encoding
http://www.w3schools.com/tags/ref_urlencode.asp
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
Теперь стало яснее, спс.ericsson писал(а):Символы за исключением латинских в URL (чем является ссылка) поддерживаются разнообразными костылями, и UTF-8 вам, естественно, не поможет. Символы должны быть закодированы в виде так называемой URL-encoded строки.
http://en.wikipedia.org/wiki/Percent-encoding
http://www.w3schools.com/tags/ref_urlencode.asp
НО даже с закодированными ссылками не работает.
Код: Выделить всё
<xsl:choose>
<xsl:when test="FieldValue[starts-with(., '\\')]">
<a href="_blank">
<xsl:attribute name="href">file:///P:\5_****\1_Карта<xsl:value-of select="FieldValue"/>target="_blank" rel="nofollow"</xsl:attribute>
<xsl:value-of select="FieldValue"/>
</a>
</xsl:when>
</xsl:choose>
./Приложения/***/2014ГУ.pdf
в самом названии файлов тоже используется кириллица.
Ошибку выдает туже.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: ссылки в HTML
Я что-то у вас не вижу "закодированных" ссылок.
Так, например, ваше "1_Карта" должно выглядеть, как "1_%D0%9A%D0%B0%D1%80%D1%82%D0%B0"
"Приложения" - как "%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F"
А имя файла "2014ГУ.pdf" должно быть записано, как "2014%D0%93%D0%A3.pdf"
Я не использую ArcGIS и не знаю, какой XSLT-транслятор там применяется, так что могу только чисто теоретически указать на функцию XPath http://www.w3.org/TR/xpath-functions/#f ... de-for-uri - не знаю, поддерживается ли она там, или нет.
Аналогичная вашей проблема http://stackoverflow.com/questions/1756 ... h-xslt-1-0 с частичным решением, правда.
Так, например, ваше "1_Карта" должно выглядеть, как "1_%D0%9A%D0%B0%D1%80%D1%82%D0%B0"
"Приложения" - как "%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F"
А имя файла "2014ГУ.pdf" должно быть записано, как "2014%D0%93%D0%A3.pdf"
Я не использую ArcGIS и не знаю, какой XSLT-транслятор там применяется, так что могу только чисто теоретически указать на функцию XPath http://www.w3.org/TR/xpath-functions/#f ... de-for-uri - не знаю, поддерживается ли она там, или нет.
Аналогичная вашей проблема http://stackoverflow.com/questions/1756 ... h-xslt-1-0 с частичным решением, правда.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
Да, я не стал писать закодированный, решил кинуть исходник.
тк с закодированным не работал.
тк с закодированным не работал.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: ссылки в HTML
Это весьма странный способ описать свою проблему.
А почему у вас символы "\" в пути используются? Должно быть
и тому подобное.
В любом случае: попытайтесь открыть в своем browser-е файл, который должен открываться, скопируйте из его адресной строки правильный URL, который сформирован самим browser-ом, и сравнивайте то, что у вас получается, с ним, как с эталоном.
А почему у вас символы "\" в пути используются? Должно быть
Код: Выделить всё
file:///C:/Users/
В любом случае: попытайтесь открыть в своем browser-е файл, который должен открываться, скопируйте из его адресной строки правильный URL, который сформирован самим browser-ом, и сравнивайте то, что у вас получается, с ним, как с эталоном.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
и так я уже пробовал, в браузере открывает все.ericsson писал(а):Это весьма странный способ описать свою проблему.
А почему у вас символы "\" в пути используются? Должно бытьи тому подобное.Код: Выделить всё
file:///C:/Users/
В любом случае: попытайтесь открыть в своем browser-е файл, который должен открываться, скопируйте из его адресной строки правильный URL, который сформирован самим browser-ом, и сравнивайте то, что у вас получается, с ним, как с эталоном.
и из браузера копировал обратно > не открывает.
Пробовал в отд. меню аркгис создовать гиперссылку, там все работает, но посмотреть html код нельзя.
т.е. в браузере открывает, создание отд гиперссылок получается, НО в xsl шаблоне при той же ссылке - ошибка.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
Имея оригинал, кодироваться он все равно будет одинаково.ericsson писал(а):Это весьма странный способ описать свою проблему.
хотя и в обратной последовательности тоже)
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
обновлю тему.
вот до чего дошел с помощью коментов выше.
в результате получаю, как на картинке.
Если скопировать адрес в chrome, то он открывает
вот до чего дошел с помощью коментов выше.
Код: Выделить всё
<xsl:choose>
<xsl:when test="FieldValue[starts-with(., '.\')]">
<a target="_blank">
<xsl:attribute name="href">fn:encode-for-uri ("file:///P:/5_***/1_Карта<xsl:value-of select="FieldValue"/>)</xsl:attribute>
<xsl:value-of select="FieldValue"/>
</a>
</xsl:when>
<xsl:otherwise>
<p><xsl:value-of select="FieldValue"/></p>
</xsl:otherwise>
</xsl:choose>
Если скопировать адрес в chrome, то он открывает
- Вложения
-
- Безымянный.png (32.61 КБ) 10191 просмотр
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: ссылки в HTML
Вы правда думаете, что browser обязан выполнить функцию XQuery в своей адресной строке? Перекодировка должна быть выполнена до того, как URL будет передан browser-у. И никаких функций там содержаться не должно.
Я вам рассказываю, чего нужно добиться. Как - уже вне моей компетенции, потому что ArcGIS не использую.
Я вам рассказываю, чего нужно добиться. Как - уже вне моей компетенции, потому что ArcGIS не использую.
-
- Активный участник
- Сообщения: 103
- Зарегистрирован: 16 июл 2014, 11:55
- Репутация: 13
- Откуда: Санкт-Петербург
- Контактная информация:
Re: ссылки в HTML
Я так не считаю, но кодирует он ее если стоит только в этом месте.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей