Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не изменяется кодировка в XML 
:(
    Опции темы
DimaSiK
Дата 8.8.2007, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не могу изменить кодировку XML документа хоть убей. Изначально ее определяю, когда создаю новый dom объект:
Код

$dom_obj = new domDocument('1.0','windows-1251');

потом устанавливаю ее принудительно через свойство:
Код

#$dom_obj->encoding='windows-1251'

далее производим добовление элементов в объект и выводим его на экран echo $dom_obj->saveXML() и постоянно видим кодировку отличную от устанавливаемой, а именно utf-8. Подкиньте совет, в чем дело??


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

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


Опытный
**


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

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



Вы указываете кодировку в которой документ записан.
А внутреннее его представление хранится в юникоде.
PM MAIL ICQ   Вверх
DimaSiK
Дата 8.8.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(WolfON @ 8.8.2007,  22:16)
Вы указываете кодировку в которой документ записан.
А внутреннее его представление хранится в юникоде.

я в дерево русский текст записываю через iconv('windows-1251', 'utf-8',$string), вроде бы все хорошо, но теперь как мне его верно отобразить????


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
WolfON
Дата 8.8.2007, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а почему-бы не iconv('utf-8','windows-1251',$element); ? smile
PM MAIL ICQ   Вверх
DimaSiK
Дата 8.8.2007, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(WolfON @ 8.8.2007,  22:30)
а почему-бы не iconv('utf-8','windows-1251',$element); ? smile

интересно знать, в какой момент это делать????, в момент вывода или же в момент формирования объекта. Если в момент вормирования объекта, то первый параметр функции iconv это есть кодировка из которой преабразуем, второй - кодировка в которую преобразуем, не так ли??


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Golda
Дата 9.8.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



В момент вывода


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
DimaSiK
Дата 9.8.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Golda @ 9.8.2007,  14:31)
В момент вывода

уже разобрался =)


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

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


Опытный
**


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

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



Кстати еще такой вопрос, какие функции используются имеено в 5 PHP для склейки xml и xls шаблонов?


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
DimaSiK
Дата 9.8.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Golda @ 9.8.2007,  14:31)
В момент вывода

У меня к тебе такой вопрос, вот есть часть кода, где в $this->xml_doc хранится сформированный динамически XML объект, далее как видишь я соединяю xsl шаблон и xml и вывожу на экран, но на эране ничего не появляется. Если же посмотреть исходый код пустоты, то там в се есть, только оно не отоюражается и все, в чем дело понять не могу =(((((((, може что посоветуешь?
 
Код

$xsl = new DomDocument();
    $xsl->load($file);
    
    $proc = new XsltProcessor();
    $proc->registerPhpFunctions();

    // Load the documents and process using $xslt
    $xsl = $proc->importStylesheet($xsl);

    /* transform and output the xml document */
    $newdom = $proc->transformToDoc($this->xml_doc);

    print $newdom->saveXML();





--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Golda
Дата 10.8.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



И наверняка в других броузерах отображается нормально. Встречалась с такой проблемой, но пока не разобралась в чем дело. Были какие-то пляски с бубном. Типа скопировать в другой файл, пересохранить, поудалять/повставлять переводы строк, пока не заработает. Наверняка какие-то проблемы в кодировке, типа BOM в UTF-8, который неодназначно воспринимается разными программными средствами. К сожалению, помочь не могу. Давно не сталкивалась с такой ситуацией. Если пляски с бубном не помогут, выкладывайте файлы сюда, будем разбираться.


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
DimaSiK
Дата 11.8.2007, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Golda @ 10.8.2007,  13:42)
И наверняка в других броузерах отображается нормально. Встречалась с такой проблемой, но пока не разобралась в чем дело. Были какие-то пляски с бубном. Типа скопировать в другой файл, пересохранить, поудалять/повставлять переводы строк, пока не заработает. Наверняка какие-то проблемы в кодировке, типа BOM в UTF-8, который неодназначно воспринимается разными программными средствами. К сожалению, помочь не могу. Давно не сталкивалась с такой ситуацией. Если пляски с бубном не помогут, выкладывайте файлы сюда, будем разбираться.

Вроде бы разобрался, хотя пока не понял из-за чего такое может быть. Дело в том, что в xsl файле в секции где описывается javascript, тоесть <javascript></javascript> при склейке куда-то выпадал и выпадает закрывающийся тег </javascript>. Если например прописать какую-нибудь функцию, даже пустую в секции <javascript></javascript>, то закрывающийся тег не пропадает и все отлично, а так просто исчезает  и поэтому страница не отображается, хотя имеется в наличии.


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Golda
Дата 12.8.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



Пустой <javascript>? Возможно, дело в данном случае в том, что  реально процессор обрабатывает не текст XSL и XML, а их преставление в виде структуры в памяти (скорее всего DOM). И в таком представлении теряется информация о том, был описан тег, не содержащий дочерних элементов, как  <tag></tag>  или <tag/>. В результате при преобразовании в текстовое представление, получаем <tag/>, т.е. в данном случае <javascript/>. А поскольку аттрибута src он не содержит, броузер и дал сбой


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
DimaSiK
Дата 13.8.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Golda @ 12.8.2007,  08:46)
Пустой <javascript>? Возможно, дело в данном случае в том, что  реально процессор обрабатывает не текст XSL и XML, а их преставление в виде структуры в памяти (скорее всего DOM). И в таком представлении теряется информация о том, был описан тег, не содержащий дочерних элементов, как  <tag></tag>  или <tag/>. В результате при преобразовании в текстовое представление, получаем <tag/>, т.е. в данном случае <javascript/>. А поскольку аттрибута src он не содержит, броузер и дал сбой

Да, так и есть, обрабатывается DOM smile , как в этом случае быть??


--------------------
Мы не стараемся быть первыми, мы стараемся быть лучшими.

PM MAIL   Вверх
Golda
Дата 14.8.2007, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



Можете попробовать запретить сокращунную запись тега

Код

echo $dom->saveXML(null, LIBXML_NOEMPTYTAG);
 

Но это подействует на все теги, т.е. Вы получите также <img..></img> например. На мой взгляд лучше просто сделать <javascript> непустым, добавив в него, например, html комментарий. В xsl для этого можно использовать tag <xsl:comment>


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




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


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

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