XML @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
На страницу 1 2 3  >  Страница 1 из 3 [ Сообщений: 79 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Заголовок сообщения: XML
Сообщение Добавлено: 13 Февраль 2004, 21:52:54 
вот захотелось мне написать сайтик, в котором использовать два языка, например русский и украинский, так вот мне бы хотелось понять как работает XML и как его юзать при помощи ПЕРЛа? Если чего то непонятно, то можно сказать проще: многоязыковая поддержка, как у этого форума, например.
OMUG
новый человек
0
Сообщения: 16
Зарегистрирован: 08.02.04
Откуда: Ростов на Дону
Сообщение Добавлено: 14 Февраль 2004, 14:20:41 
Попробуй XML::Simple || XML::Parser

эти модуля читают ХМЛ и возвращают тебе всю структуру в здоровый хеш... дальше просто $XML->{chenit}->{value}->[2]… там в перле есть прекрасная документация по этим модулям...
они свроде стандартные (входят в поставку с перлом) поэтому на хостингах проблемм с этим быть не должно... покрайней мере на www.highway.ru все это установлено..

Удачи!

_________________
Веб-слесарь...
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 14 Февраль 2004, 17:43:06 
OMUG, большой человеческий thanks
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 17 Февраль 2004, 20:03:12 
возник еще вопрос, почему сервер матерится если в XML файле есть кирилические символы и можна ли это как-нить пофиксить?
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 17 Февраль 2004, 20:16:04 
пример приведи.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 17 Февраль 2004, 20:21:40 
привожу:
текст XML файла (если ошибка в нем, то прошу сильно не пинать, тока начинаю учить):
Код:
<config name="blablabla">
  <server name="bla1">
      <adress>127.0.0.1</adress>
      <adress>127.0.1.0</adress>
  </server>
  <server name="bla2">
      <adress>127.1.1.1</adress>
      <adress>127.1.1.2</adress>
  </server>   
</config>


Так вот, если на месте IP-шников будет текст с кириллицей, то браузер выдает: …. ошибка в таком то XML файле и кусок кода с где встречается первый кириллический символ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 17 Февраль 2004, 21:05:04 
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.
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 18 Февраль 2004, 00:55:07 
Crazy, приведи пожалуйста пример XML файла (правильную конструкцию) в котором бы присутствовали кириллические символы. Спасибо.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 18 Февраль 2004, 11:21:08 
adebt, например http://www.di-vision.ru/ya/xml_price.php структура для Yandex.Market

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 18 Февраль 2004, 11:33:25 

adebt писал(а):
приведи пожалуйста пример XML файла (правильную конструкцию) в котором бы присутствовали кириллические символы. Спасибо.



Код:
<?xml version="1.0" encoding="windows-1251"?>
<foo>Это тест</foo>
OMUG
новый человек
0
Сообщения: 16
Зарегистрирован: 08.02.04
Откуда: Ростов на Дону
Сообщение Добавлено: 18 Февраль 2004, 18:26:51 
мне кажется что, Господин "Семашедший" и Господин "Днинный" наплевательски относятся к участникам форума!!

я тоже с этой проблеммой столкнулся %(

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

Люди ! ктонить знает как переделывать кирилицу в ХТМЛ спешалс чарс? на перле...

_________________
Веб-слесарь...
OMUG
новый человек
0
Сообщения: 16
Зарегистрирован: 08.02.04
Откуда: Ростов на Дону
Сообщение Добавлено: 18 Февраль 2004, 18:28:57 
или если указать кодировку то модуль его прочитает и не выругается?

_________________
Веб-слесарь...
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 18 Февраль 2004, 19:01:07 
а мне кажется, что господину OMUG нужно:
1. научится вести диалоги.
2. почитать литературу.
3. посмотреть примеры.

ЗЫ. В дальнейшем попрошу мой ник не переводить на другие языки. :dont:

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 18 Февраль 2004, 20:02:25 
это наверное Tatan :cool:

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 18 Февраль 2004, 20:02:56 

OMUG писал(а):
мне кажется что



Некому научить тебя креститься?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 18 Февраль 2004, 20:27:18 

bE(o0L писал(а):
это наверное Tatan :co0ol:



Почему "наверное"? Ты видел на форуме кого-то еще настолько тупого?
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 19 Февраль 2004, 21:43:31 
Crazy, я использую модуль XML::Simple и кодировку windows-1251 в XML файле (как ты указал в примере) и мне в еррор.лог пишет, что мол извините, но эта кодировка модулем не поддерживается. :dont: Вот так. Что теперь мне делать?
OMUG
новый человек
0
Сообщения: 16
Зарегистрирован: 08.02.04
Откуда: Ростов на Дону
Сообщение Добавлено: 20 Февраль 2004, 00:06:43 
<censored>



adebt, попробуй кодить их во чтонить а потом когда показываешь раскодивать.…

_________________
Веб-слесарь...
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 20 Февраль 2004, 14:10:07 

adebt писал(а):
эта кодировка модулем не поддерживается



По-дефолту expat (у тебя именно он отвечает за парсинг) понимает, упрощенно говоря, только UTF и Ascii. Ты не забыл подключить файлы, ответственные за русские кодировки?
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 20 Февраль 2004, 23:42:59 
Crazy, скачал архив, там есть файлы для русских кодировок, ща попробую запустить. Спасибо всем. Тему можно закрывать. :beer: Если что начну новую :dandy:
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 21 Февраль 2004, 00:02:52 
погодите, не закрывайте тему, я погорячился. Crazy, значит слил я архив с кодировками, .enc файлы скопировал в каталог с другими кодировками, перл больше не ругается, но появилась еще одна совсем непонятная трабла: парсится XML файл чудесно, но вот беда, в браузере вместо искомого слова "проверка" выводится набор непонятных символов, хотя если выбрать -> посмотреть HTML-код, то там все прекрастно, тобишь пишет "проверка". Как вылечить эту проблему?
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 22 Февраль 2004, 00:42:44 
люди! Ну неужели на таком огромном форуме нет человека, который бы не сталкивался с этой же проблемой???????????
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 22 Февраль 2004, 08:53:18 

adebt писал(а):
выводится набор непонятных символов, хотя если выбрать -> посмотреть HTML-код, то там все прекрастно, тобишь пишет "проверка".



Какой content-type ты выдаешь в браузер? Помогает ли ручной выбор отображаемой кодировки? В каком браузере проверяешь?
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 22 Февраль 2004, 12:50:11 
Crazy, content-type: windows-1251. Ручной выбор кодировки не помогает (ниодна из кирилических), браузер ИЕ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 22 Февраль 2004, 19:16:29 

adebt писал(а):
content-type: windows-1251



Не верю. Вторая попытка. Пока ты проводишь настоящий эксперимент, заодно обдумай ответ на вопрос: в какой кодировке ты смотрел View|Source. Не была ли это UTF-8? Если да, то просто продекларируй ее в content-type как объективную реальность.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 22 Февраль 2004, 23:49:28 
adebt, дядьку, постольку поскольку XML - язык строгий, очень многие проблемы и ошибки бывают просто из-за того, что что-то где-то чуть-чуть не так написано. Неправильный namespace, неправильные заголовки, кодировки, версия парсера - и всё. И ничего не работает. Так что показал бы лучше точный и полный текст исходников, в которых проблема. :gent:
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 23 Февраль 2004, 00:25:29 
Текст XML файла:
Код:
<?xml version="1.0" encoding="windows-1251"?>
  <config logdir="/var/log/foo/" debugfile="/tmp/foo.debug">
    <server name="sahara" osname="solaris" osversion="2.6">
      <address>10.0.0.101</address>
      <address>10.0.1.101</address>
    </server>
    <server name="gobi" osname="irix" osversion="6.5">
      <address>10.0.0.102</address>
    </server>
    <server name="kalahari" osname="linux" osversion="2.0.34">
      <address>10.0.0.103</address>
      <address>перевірка</address>
    </server>
  </config>


текст cgi скрипта:
Код:
#!/usr/bin/perl
print "Content-type: text/html; charset: windows-1251\n\n";
use XML::Simple;
$path ="$ENV{DOCUMENT_ROOT}/test.xml";
my $config = XMLin($path);
print $config->{server}->{kalahari}->{address}->[1];


Не знаю в какой кодировке я смотрел исходник :lamer: , но открывался он в Блокноте :lamer:
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 23 Февраль 2004, 00:31:07 
Попробуй в качестве теста подставить:

Код:
print "Content-type: text/html; charset: utf-8\n\n";


или просто:

Код:
print "Content-type: text/html\n\n";

_________________
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.
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 23 Февраль 2004, 00:34:26 
попробую
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 23 Февраль 2004, 01:04:01 
Изменял код и так и так - ничерта не работает

последний вариант кода:

Код:
#!/usr/bin/perl
print "Content-type: text/html; charset: utf-8\n\n";
use XML::Simple;
$path ="$ENV{DOCUMENT_ROOT}/test.xml";
my $config = XMLin($path);
print $config->{server}->{kalahari}->{address}->[1];


а вот если вручную выбрать utf-8 то тогда отображает нормально.

Но вот в чем вопрос: если и в XML и в cgi указана одна и та же кодировка windows-1251 то какого хрена оно отображает его в ЮТФ? Как с этим бороться?
adebt Муж.
соучастник
0
Сообщения: 478
Зарегистрирован: 25.11.02
Откуда: Україна (файне місто Луцьк)
Сообщение Добавлено: 23 Февраль 2004, 01:06:14 
Я свои скрипты пишу в блокноте без всяких редакторов, то как же мне сохранить скрипт с кодировкой ЮТФ? Это на всякий случай, если с вин-кодировкой ничего не получится.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 23 Февраль 2004, 09:17:22 
adebt, не хочу тебя расстраивать раньше времени, но, кажется, это недостаток именно XML::Simple. Потому что должно работать нормально, как при отображении XML броузером, так и при парсинге на стороне сервера. Заголовки:
.xml:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet href="tsv.xsl" type="text/xsl"?>

.xsl:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">


В первом из вариантов просто показывает броузер XML+XSL.
Во втором - работает PHP 4.3.4 со включенными функциями XSLT_*
Код:
$parser = xslt_create();
$filebase = 'file://'.getcwd().'/';
xslt_set_base ($parser,$filebase);
xslt_set_encoding($parser,"windows-1251");
$html = xslt_process($parser, "1.xml","tsv.xsl");
print $html;
xslt_free($parser);

Оба варианта - работают:
1. http://www.inrost.ru/test/1.xml
2. http://www.inrost.ru/test/xmltest.php
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 23 Февраль 2004, 10:52:59 

@TSV писал(а):
adebt, не хочу тебя расстраивать раньше времени, но, кажется, это недостаток именно XML::Simple.



Если мне не изменяет память, в одной из старых версий Perl был баг, который проявлялся именно при работе XML::Simple -- что-то сбивалось в символьной обработке и было связано именно с юникодом. Моя память не сохранила деталей.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 23 Февраль 2004, 10:57:43 
Crazy, есть такое дело. Буквально несколько дней назад натолкнулся на описание этого бага, но, поскольку сам Перл не использую (либо PHP, либо уж С++), да и было это в архивах мэйлинг листов, то... Осталось только в памяти то, что XML::Simple, XML::Parser, и PHP PEAR XML_Transformer - лажа...
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 23 Февраль 2004, 11:06:42 
Crazy, кстати о птицах. А можно ли вообще трансформацию XML + XSL + DTD => XHTML свалить полностью на Apache? Например, прикрутив туда какой-либо модуль? Хотя бы конкретно для версии 1.0. Точнее, еще и с кодировкой:
Код:
<?xml version="1.0" encoding="windows-1251"?>
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
На страницу 1 2 3  >  Страница 1 из 3 [ Сообщений: 79 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100