0 Сообщения: 478 Зарегистрирован: 25.11.02 Откуда: Україна (файне місто Луцьк)
Заголовок сообщения: XML Добавлено: 13 Февраль 2004, 21:52:54
вот захотелось мне написать сайтик, в котором использовать два языка, например русский и украинский, так вот мне бы хотелось понять как работает XML и как его юзать при помощи ПЕРЛа? Если чего то непонятно, то можно сказать проще: многоязыковая поддержка, как у этого форума, например.
0 Сообщения: 16 Зарегистрирован: 08.02.04 Откуда: Ростов на Дону
Добавлено: 14 Февраль 2004, 14:20:41
Попробуй XML::Simple || XML::Parser
эти модуля читают ХМЛ и возвращают тебе всю структуру в здоровый хеш... дальше просто $XML->{chenit}->{value}->[2]… там в перле есть прекрасная документация по этим модулям...
они свроде стандартные (входят в поставку с перлом) поэтому на хостингах проблемм с этим быть не должно... покрайней мере на www.highway.ru все это установлено..
Так вот, если на месте IP-шников будет текст с кириллицей, то браузер выдает: …. ошибка в таком то XML файле и кусок кода с где встречается первый кириллический символ.
adebt, это вообще не XML. XML обязан начинаться конструкцией <?xml …. ?>
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
0 Сообщения: 16 Зарегистрирован: 08.02.04 Откуда: Ростов на Дону
Добавлено: 18 Февраль 2004, 18:26:51
мне кажется что, Господин "Семашедший" и Господин "Днинный" наплевательски относятся к участникам форума!!
я тоже с этой проблеммой столкнулся %(
че делать пока незнаю...
есть такое глупое предложение (на пока)… проверять если это не латинский текст или цифры то записывать как да хоть тотже юникод... хотя хз как отнесется к юникоду модуль... или в аски просто перегонять, а потом обратно... но это тоже не вариант...
Люди ! ктонить знает как переделывать кирилицу в ХТМЛ спешалс чарс? на перле...
0 Сообщения: 478 Зарегистрирован: 25.11.02 Откуда: Україна (файне місто Луцьк)
Добавлено: 19 Февраль 2004, 21:43:31
Crazy, я использую модуль XML::Simple и кодировку windows-1251 в XML файле (как ты указал в примере) и мне в еррор.лог пишет, что мол извините, но эта кодировка модулем не поддерживается. Вот так. Что теперь мне делать?
По-дефолту expat (у тебя именно он отвечает за парсинг) понимает, упрощенно говоря, только UTF и Ascii. Ты не забыл подключить файлы, ответственные за русские кодировки?
0 Сообщения: 478 Зарегистрирован: 25.11.02 Откуда: Україна (файне місто Луцьк)
Добавлено: 21 Февраль 2004, 00:02:52
погодите, не закрывайте тему, я погорячился. Crazy, значит слил я архив с кодировками, .enc файлы скопировал в каталог с другими кодировками, перл больше не ругается, но появилась еще одна совсем непонятная трабла: парсится XML файл чудесно, но вот беда, в браузере вместо искомого слова "проверка" выводится набор непонятных символов, хотя если выбрать -> посмотреть HTML-код, то там все прекрастно, тобишь пишет "проверка". Как вылечить эту проблему?
Не верю. Вторая попытка. Пока ты проводишь настоящий эксперимент, заодно обдумай ответ на вопрос: в какой кодировке ты смотрел View|Source. Не была ли это UTF-8? Если да, то просто продекларируй ее в content-type как объективную реальность.
adebt, дядьку, постольку поскольку XML - язык строгий, очень многие проблемы и ошибки бывают просто из-за того, что что-то где-то чуть-чуть не так написано. Неправильный namespace, неправильные заголовки, кодировки, версия парсера - и всё. И ничего не работает. Так что показал бы лучше точный и полный текст исходников, в которых проблема.
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
0 Сообщения: 478 Зарегистрирован: 25.11.02 Откуда: Україна (файне місто Луцьк)
Добавлено: 23 Февраль 2004, 01:06:14
Я свои скрипты пишу в блокноте без всяких редакторов, то как же мне сохранить скрипт с кодировкой ЮТФ? Это на всякий случай, если с вин-кодировкой ничего не получится.
adebt, не хочу тебя расстраивать раньше времени, но, кажется, это недостаток именно XML::Simple. Потому что должно работать нормально, как при отображении XML броузером, так и при парсинге на стороне сервера. Заголовки:
.xml:
adebt, не хочу тебя расстраивать раньше времени, но, кажется, это недостаток именно XML::Simple.
Если мне не изменяет память, в одной из старых версий Perl был баг, который проявлялся именно при работе XML::Simple -- что-то сбивалось в символьной обработке и было связано именно с юникодом. Моя память не сохранила деталей.
Crazy, есть такое дело. Буквально несколько дней назад натолкнулся на описание этого бага, но, поскольку сам Перл не использую (либо PHP, либо уж С++), да и было это в архивах мэйлинг листов, то... Осталось только в памяти то, что XML::Simple, XML::Parser, и PHP PEAR XML_Transformer - лажа...
Crazy, кстати о птицах. А можно ли вообще трансформацию XML + XSL + DTD => XHTML свалить полностью на Apache? Например, прикрутив туда какой-либо модуль? Хотя бы конкретно для версии 1.0. Точнее, еще и с кодировкой:
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.