Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Perl + XML |
Автор: AlexanderI 26.7.2006, 11:01 |
Где посмореть примеры разбора XML ? Как можно разобрать такую структуру, учитывая что записей несколько сотен ? Очень хочется посмотреть на примеры. <?xml version="1.0"?> <newsL> <news date="1.1.2002"> <title>title 1</title> <text>news text 1</text> </news> </newsL> <socLine> <soc dates="1.1.2002"> <title>title 1</title> <text>news text 1</text> </socLine> <socLine> <soc dates="1.1.2002"> <title>title 1</title> <text>news text 1</text> </socLine> |
Автор: nitr 26.7.2006, 16:00 |
поиск на форуме! Или за тебя скрипт писать? Я понимаю если сложный вопрос... обсуждали XML мнооого раз... |
Автор: AlexanderI 26.7.2006, 16:08 |
Поиск по форому ничего вразумительного не дал. Обсуждались наипростейшие формы. |
Автор: Nab 26.7.2006, 18:25 |
Да куда уж проще... тем более что как по мне, так и XML не очень валидный... <soc dates ... > должно быть каким либо способом закрыто.... правда там указана версия 1.0, а я по стандартам особенно и не знаю как оно там было раньше... |
Автор: rcdimon 26.7.2006, 20:51 |
XML::Parser или что-то в этом духе |
Автор: nitr 26.7.2006, 21:46 |
все примеры в комплекте с модулем, как установить модуль мы уже писали + в ФАКе тож сказано, но имхо perl -MCPAN -e 'install XML::Parser' лучше ;) |
Автор: korob2001 28.7.2006, 09:36 | ||||||||
Модуль XML::Simple, входит в стандартный дистрибутив Perl. Но сразу хочу подправить твой XML, в нём есть несколько ошибок:
1. Добавил корневой тэг <myxml></myxml>. Корневой тэг должен быть всегда, он своего рода оболочка, для всего остального, что в него входит. 2. У тебя есть тэг <soc dates="1.1.2002"> их кстати несколько, но у них нет закрывающего тэга, т.е. они одиночные. Любой одиночный тэг должен заканчиваться такими символами />, т.е. <soc dates="1.1.2002"/> - это указывает на то, что тэг одиночный, он же открывающий - он же закрывающий. Теперь напиши или скопируй такой код:
Испаравь путь к своему XML файлу и запусти его. Увидешь примерно такую структуру:
Это тебе показал её метод (подпрограмма) Dumper из модуля Data::Dumper. Как ты понял, она(структура) расположена в переменной $xml. Всё остальное уже дело техники. Если тебе известно, что из себя представляют анонимные хеши, анонимные массивы и прочее, думаю ты знаешь, что с этим делать дальше. Т.е. примерно таким образом можно получить текст:
|
Автор: AlexanderI 28.7.2006, 09:40 |
korob2001, Круто ! |
Автор: Celdox 1.8.2006, 12:25 |
Причем не впервой. Даже так держать говорить не надо. ![]() ![]() |