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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML+кирилица 
:(
    Опции темы
korob2001
  Дата 19.10.2005, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Привет!!!
Написал такой не сложный XML:
Код

<?xml version="1.0"?>
<freemenu-document version="1.0" timestamp="2005-10-19 6:59:00">
<menuitem>
    <ru-title>Главная</ru-title>
    <ru-description>Главная страница. Отсюда всё начинается.</ru-description>
    <link>/cgi-bin/antonium/home.pl</link>
    <icon>/antonium/images/home.gif</icon>
    <width>16</width>
    <height>16</height>
</menuitem>
<menuitem>
    <ru-title>Гостевуха</ru-title>
    <ru-description>Пожелания и угрозы пишите в гостевую книгу.</ru-description>
    <link>/cgi-bin/antonium/guest.pl</link>
    <icon>/antonium/images/guest.gif</icon>
    <width>16</width>
    <height>16</height>
</menuitem>
</freemenu-document>

Теперь мне нужно его отпарсить, пишу код на Perl:
Код

#!/usr/bin/perl -w
use strict;
use XML::Simple;
my $menu_xml = XMLin('C:/FreeMenu.xml', forcearray => 1);
for my $item (@{$menu_xml->{menuitem}}) {
    foreach ( qw( ru-title ru-description link icon width height ) ) {
              print $item->{ $_ }->[0], "\n"
    }
    print "-" x 80, "\n"
}

В итоге получаю ошибку:
Код

not well-formed (invalid token) at line 4, column 11, byte 109 at C:/Apache/usr/site/lib/XML/Parser.pm line 187

Пробую заменить кирилицу на символы латинского алфавита и всё работает. smile Подскажите, какой encoding нужно установить? Пробовал поставить encoding="cp1251", а так же "windows-1251" на что получил такую ошибку:
Код

Couldn't open encmap cp1251.enc:
No such file or directory
 at C:/Apache/usr/site/lib/XML/Parser.pm line 187

Полез в библиотеки, действительно там нет такой кодировки. Есть следующие:
Код

euc-kr.enc
x-sjis-jdk117.enc
iso-8859-9.enc
iso-8859-7.enc
big5.enc
iso-8859-2.enc
iso-8859-8.enc
x-euc-jp-jisx0221.enc
x-sjis-unicode.enc
Japanese_Encodings.msg
iso-8859-4.enc
x-euc-jp-unicode.enc
windows-1250.enc
windows-1252.enc
iso-8859-5.enc
iso-8859-3.enc
x-sjis-cp932.enc
x-sjis-jisx0221.enc



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
LSD
Дата 19.10.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Сохраняй файл в кодировке UTF-8, ее по стандарту должны поддерживать все парсеры.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
korob2001
Дата 19.10.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



LSD - СПАСИБО, ты меня уже который раз выручаешь. Всё заработало, правда пришлось ещё в Perl программу добавить следующую строку:
Код

use encoding "ru_RU.CP1251";

smile

Это сообщение отредактировал(а) korob2001 - 19.10.2005, 17:16


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
LSD
Дата 19.10.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Плиз smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
3,14
Дата 20.10.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Кстати кодировку желательно выставлять и в XML файле:

Код

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



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
korob2001
Дата 2.11.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Если ставлю такую кодировку в XML, то не могу отпарсить его. В первом посте об этом написано.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

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

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

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


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

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


 




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


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

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