Автор Тема: Какой XML-парсер выбрать?  (Прочитано 5752 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NetHead

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.eage.ru
Какой XML-парсер выбрать?
« : 25 Марта 2004, 00:28:20 »
Может кто-нибудь посоветует конкретный XML-парсер по-быстрее, по-удобнее, а то их так много...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #1 : 25 Марта 2004, 11:28:44 »
Дело в том что почти все они - это обертки к expat.
Все зависит от твоих предпочтение и задачи.
Мне на 99% хватает XML::Simple
The documentations is your friend

Оффлайн NetHead

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.eage.ru
Какой XML-парсер выбрать?
« Ответ #2 : 25 Марта 2004, 23:21:02 »
Задача такова: XML файл лежит на каком-то сервере (в инете). Его сначала нужно выкочать на свой (или можно обойтись без этого?), а затем парсить, причем файлы достаточно большие, могут доходить до 2000 записей, в каждой из которых несколько дочерних.
Что посоветуете? Как лучше решить эту задачу?

Оффлайн NetHead

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.eage.ru
Какой XML-парсер выбрать?
« Ответ #3 : 27 Марта 2004, 11:38:54 »
Может кто-нибудь чего-нибудь посоветует как парсировать большой XML сильно не нагружая сервер? (насколько я понял XML::Simple весь файл загружает в память)

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #4 : 27 Марта 2004, 20:09:43 »
Ты правильно понял.
Почитай:
http://www.ittepic.edu.mx/eBooks/computacion/80oreilly/perl3/pxml/ch03_02.htm
и опиши задачу более конкретно.
The documentations is your friend

Оффлайн NetHead

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 9
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.eage.ru
Какой XML-парсер выбрать?
« Ответ #5 : 27 Марта 2004, 22:47:46 »
Задача подробнее:
Нужно парсить прайс такого вида:

<товар id="2133">
  [url]http://www....[/url]
  <цена>123
  <описание>длинная строка длинная строка длинная строка длинная строка длинная строка длинная строка длинная строка
  <всякая другая хрень>...
  ...
  <всякая другая хрень>...


и таких блоков может доходить до нескольких тысяч. Этот файл чаще лежит на серверах других фирм. Данные из него надо внести в мою базу MySQL. Как лучше (по производительности) сделать?

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Какой XML-парсер выбрать?
« Ответ #6 : 25 Июня 2004, 23:47:36 »
Может, я неактуален, но всё же хотелось бы получить ответ на вопрос NetHead в предыдущем посте.
 BlueJacking среди нас

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #7 : 26 Июня 2004, 20:55:48 »
metton немного изменим задачу.
у тебя есть лог апача.
его размер 2 гига. как ты его будеш парсить?
The documentations is your friend

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Какой XML-парсер выбрать?
« Ответ #8 : 27 Июня 2004, 02:09:21 »
NeoNox
Ну за неимением опыта в таких делах, видимо, попробую регами или модуль какой-нибудь по теме найду.
 BlueJacking среди нас

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #9 : 27 Июня 2004, 11:59:40 »
metton нет, вероятно я не понял твой вопрос.
вообще вопросов тут два:
1) чем парсить?
2) как парсить большой файл?
так вот, если 2 гига файл ты погрузиш в память, то тебе система(а не Perl) ответит - out of memory!
значит нужно работать с меньшим обьемом данных.
А если ты ищешь ответ на первый вопрос - perldoc XML::Simple тебе с головой хватит.
The documentations is your friend

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Какой XML-парсер выбрать?
« Ответ #10 : 27 Июня 2004, 22:23:48 »
NeoNox
Чем парсить сравнительно немаленький файл. Скажем, как указывал NetHead в последнем своём посте, позиций на тысячу, две.
То есть 1-5 метров от силы. На такое XML::Simple способен? Или есть что-то более шустрое для таких целей?
 BlueJacking среди нас

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #11 : 28 Июня 2004, 10:41:14 »
metton
чтобы понять какие парсеры можно использовать достаточно знать как они работают.
Делятся они на 2 вида - SAX и DOM
DOM-парсеры грузят весь XML в память и формируют из него дерево. С ними удобно работать, но они жрут много памяти.
SAX-парсеры просматривают последовательно каждый узел в XML-документе и в зависимости от типа узла выполняют тот или иной обработчик события. Они сравнительно неудобны но проблем с памятью не имеют.

Вывод таков - тебе надо использовать любой SAX-парсер. Если он не криво написан, проблем не будет. Наиболее известным (AFAIK) является Expat и в частности XML::Simple
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Какой XML-парсер выбрать?
« Ответ #12 : 28 Июня 2004, 13:30:23 »
Макс
Предполагается что файлы будут загружаться на сервер (либо в общий XML либо в базу), скажем раз день. Дальше идёт работа уже с этим данными. (к теме не относится)
В таком случае (раз в день) тоже SAX? Или же DOM?
 BlueJacking среди нас

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Какой XML-парсер выбрать?
« Ответ #13 : 28 Июня 2004, 13:43:18 »
SAX (ИМХО)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Какой XML-парсер выбрать?
« Ответ #14 : 28 Июня 2004, 14:06:11 »
Макс
ОК, пасиба :)
 BlueJacking среди нас

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28