Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML::Simple, Работа со сложной структурой 
:(
    Опции темы
rcdimon
Дата 1.11.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



Всем привет. В структуре XML документа есть кусок

Код

<title><hlword priority="strict">RSSonline</hlword>.<hlword priority="strict">ru</hlword> - Центр RSS технологий</title>


Я хочу получить из этого простую строку
RSSonline.ru - Центр RSS технологий

Но XML::Simple выдает мне структуру, по которой восстановить строку уже невозможно

Код

->{title}
   ->{content}
      ->[0]                  .
      ->[1]                  - Центр RSS технологий
   ->{hlword}
      ->[0]
         ->{content}     RSSonline
         ->{priority}      strict
      ->[1]
         ->{content}     ru
         ->{priority}      strict


Как быть?
PM MAIL ICQ   Вверх
Itsys
Дата 2.11.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



Чтож поделаешь, какая структура, такой и ответ smile

Попробуй использовать GroupTags (GroupTags => {title => 'hlword'}
Или вычистить регуляркой теги <hlword></hlword> перед использованием парсера
PM MAIL WWW Skype   Вверх
sir_nuf_nuf
Дата 3.11.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



rcdimon, по чистой случайности .. у XML::LibXML - есть как раз такой способ выводить содержимое элементов.
Код

use XML::LibXML;
my $p = XML::LibXML->new();
my $doc = $p->parse_string('<title><hlword priority="strict">RSSonline</hlword>.<hlword priority="strict">ru</hlword> - Центр RSS технологий</title>');
my $root = $doc->documentElement();
print $root->textContent();

Код

RSSonline.ru - Центр RSS технологий

но я думаю, у вас просто кривая структура XML

Это сообщение отредактировал(а) sir_nuf_nuf - 3.11.2008, 16:58


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
rcdimon
Дата 6.11.2008, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

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



Цитата

но я думаю, у вас просто кривая структура XML


Это не у меня ) Это у Яндекс.XML  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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