Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xsl русские символы преобразует в коды, Как этого избежать? 
:(
    Опции темы
Elena Nefedova
Дата 5.9.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.7.2006

Репутация: нет
Всего: нет



После применения трасформации к исходным данным получаю результат, в котором русские символы заменены соответствующими кодами
(ниже приведены все фрагменты)

Нельзя ли задать какими-то параметрами, чтобы русские символы отображались в виде текста, а не в виде кодов?
Или это особенности notes-трансформера?

Фрагмент исходных данных
Код

<?xml version='1.0' encoding = "Windows-1251" ?>
<?xml-stylesheet type="text/xsl" href="trans-3.xsl" ?>

<database xmlns='http://www.lotus.com/dxl' version='8.0' maintenanceversion='1.0'
 replicaid='C32574AD002D7952' path='tmp_auto_patch.ntf' title='Шаблон - Автомат'
 templatename='ROBOT' allowstoredforms='false' maintainunread='false' increasemaxfields='true'
 allowheadlinemonitors='false' uselz1='true'>

<document form='assembling'>
     <item name='Com'><text>Проверка выгрузки конфигурации</text></item>
</document>

</database>


Соответствующий код трансформации
Код

<?xml version="1.0" encoding="Windows-1251" ?>

<xsl:stylesheet version="1.0" 
xmlns:dxl="http://www.lotus.com/dxl"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
exclude-result-prefixes='dxl' >

<xsl:output method = "xml" version = "1.0" encoding = "Windows-1251" omit-xml-declaration = "no" standalone = "yes" />

<xsl:template match="/">
<configuration>
     <description>
      <xsl:value-of select = "//dxl:document[@form = 'assembling']/dxl:item[@name = 'Com']/dxl:text" />
     </description>
</configuration>
</xsl:template>
</xsl:stylesheet>

Текст файла-результата
Код

<?xml version="1.0" encoding="Windows-1251" standalone="yes"?>
<configuration>
     <description>& #1055;& #1088;& #1086;& #1074;& #1077;& #1088;& #1082;& #1072;& #1074;& #1099;& #1075;& #1088;& #1091;& #1079;& #1082;& #1080; & #1082;& #1086;& #1085;& #1092;& #1080;& #1075;& #1091;& #1088;& #1072;& #1094;& #1080;& #1080;</description>
</configuration>





PM MAIL   Вверх
gcc
Дата 6.9.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



база данных в какой кодировке?
PM WWW ICQ Skype GTalk Jabber   Вверх
Elena Nefedova
Дата 8.9.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.7.2006

Репутация: нет
Всего: нет



База данных на сервере Domino 8.0.1
М.б. UTF-8 родная кодировка, но точно не знаю

Когда данные выгружаю, она кодировку не добавляет, а пишет все без кодировки в стрим, а стрим я вывожу в файл с нужной мне кодировкой (абсолютно любой) - это как раз и получаются исходные данные

PM MAIL   Вверх
yalo
Дата 21.8.2012, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



Здравствуйте!
Может быть за четыре года нашелся ответ? мне сейчас это тоже очень актуально. В браузере-то все красиво, но при просмотре html-кода русские символы заменены на ссылки на эти символы. Кодировка везде utf-8
Код

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table border="1" width="100%" cellpadding="3" cellspacing="0">
    <tr>
    <xsl:for-each select="/head_tbl/td_cell">
        <td><a href="index.php?sort={@name_tbl}"><xsl:value-of select="@name"/></a></td>
    </xsl:for-each>
    </tr>
    <tr>
    <xsl:for-each select="/tbl/elem">
        <tr>
            <xsl:for-each select="*">
                <td><xsl:value-of select="*"/></td>
            </xsl:for-each>
        </tr>
    </xsl:for-each>
    </tr>
</table>
</xsl:template>
</xsl:stylesheet>

на выходе в html тоже получаем 
Код

   <META http-equiv=Content-Type content="text/html; charset=UTF-8"/>

в пхп при создании трансформации тоже указываю utf8:
Код

            $xsl = new DOMDocument ('1.0', 'UTF-8');
            $xsl->load('xsl/adm_tbl_cont.xsl');

            $proc = new XSLTProcessor;
            $proc->importStylesheet ($xsl);
            $html = $proc->transformToDoc ($myxml)->saveHTML ();


Это сообщение отредактировал(а) yalo - 21.8.2012, 19:14
PM MAIL ICQ   Вверх
diadiavova
Дата 21.8.2012, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(yalo @  21.8.2012,  18:38 Найти цитируемый пост)
Кодировка везде utf-8

Ну уж так-таки и везде. А как насчет элемента output в преобразовании? Хотя по идее она должна устанавливаться по умолчанию в утф-8. Может у тебя скажем исходный документ сохранен в другой кодировке, хотя указана эта?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
yalo
Дата 25.8.2012, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



diadiavova, нет, все документы сохранены в кодировке UTF-8: и php-скрипты, и xml, и xsl-шаблоны, в БД тоже все сохраняется в UTF8. И происходит все на стадии формирования еще xml, так как делаю после формирования  
Код
echo $xml->saveHTML (); 
 и уже вместо русских слов цифровые ссылки

а еще если перед  
Код
echo $xml->saveHTML (); 
  сделать
Код
            
$as = $xml->getElementsByTagName('td_cell');
foreach($as as $df) echo $df->nodeValue, PHP_EOL;
 и сделать "просмотреть исходный код" в браузере, то получится, что то, что выводилось после применения метода getElementsByTagName и вывода свойства nodeValue, то все это содержимое выводится корректно - русские буквы как русские.. ничего не пойму уже, помогите пожалуйста smile 
 я бы даже забила и на то, что в  
Код
echo $xml->saveHTML (); 
 выводятся ссылки вместо слов, но дело в том, что оно ведь потом у мня подается для преобразования xslt, чтобы получить в итоге красивенький html, и туда видимо подается тоже в виде ссылок, потому как в html тоже ссылки smile 

Это сообщение отредактировал(а) yalo - 26.8.2012, 14:38
PM MAIL ICQ   Вверх
yalo
Дата 26.8.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



неужели никто не знает в чем проблема? помогите, пожалуйста smile с темой xslt так все туго до сих пор, так немного практикующих, книжек тоже не так много, особенно на родном нашем языке:( если кто-то что-то знает, или имеет хотя бы еще какие-то предположения, в чем проблема у меня заключается, или сталкивался тем более сам с подобным - очень прошу, черканите пару строк! Буду благодарна любым советам и гипотезам (за исключением, разумеется, "зачем тебе эта xslt-шаблонизация, делай мол по старинке гибрид php+html и дело с песней" - такие тоже советчики находились уже:( )
PM MAIL ICQ   Вверх
diadiavova
Дата 26.8.2012, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



yalo, если преобразование выполняется средствами пхп, то может вопрос следовало задать в пхпшном разделе? Например в дотнете, если при программном преобразовании используется хмлрайтер, то элемент аутпут преобразования просто не учитывается. Такие нюансы могут быть и в пхпшных хмл апи.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
yalo
Дата 26.8.2012, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 24.5.2006

Репутация: нет
Всего: 2



diadiavova, спасибо за подсказку:) попробую там вопрос этот сформулировать, может и правда в пхп-преобразовании дело..
PM MAIL ICQ   Вверх
diadiavova
Дата 26.8.2012, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



И кстати, если уж говорить о самом хслт, то у некоторых элементов( валью-оф например) есть атрибут disable-output-eskaping. Можно ещё с ним попытаться поколдовать.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
dma84
Дата 5.10.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 4.7.2011

Репутация: нет
Всего: нет



Может кому пригодится


Если подгружаете HTML через loadHTML, то нужно добавлять <?xml version="1.0" encoding="UTF-8">

Код

$doc = new DomDocument();
$doc->loadHTML('<?xml version="1.0" encoding="UTF-8">'.$html);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.