Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 30, 2011 11:19:39

Andrewshkovskii
От:
Зарегистрирован: 2011-09-30
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Простой парсинг XMl. c чего начать?

Есть следующая задача:
Пропарсить xml, найти в нем теги , например, такие:

 <something class="some_class" name="some_name">
(только свойство class должно быть определенного значения, проще говоря in some_list)
У этого элемента поискать чилд-тег , например такой:
        <property name="is_item" stdset="0">
<bool>true</bool>
</property>
Если такого чилда нету - то создать его.если нету :pass : )
Внимание вопрос : С чего начать, что почитать? Задача тривиальная, какой модуль заюзать ? Я бы хотел сам разобраться, только вот выбор модуля удобного сделать не могу - нет опыта.
Спасибо.



Отредактировано (Сен. 30, 2011 11:23:37)

Офлайн

#2 Сен. 30, 2011 11:32:58

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Простой парсинг XMl. c чего начать?

возмите lxml

Офлайн

#3 Сен. 30, 2011 13:24:21

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Офлайн

#4 Сен. 30, 2011 16:17:57

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Простой парсинг XMl. c чего начать?

В батарейках xml есть, зачем тянуть/собирать этот lxml?!
Парсить можно в разные типы деревьев/документов: dom и etree (начиная с py2.5). Моя религия не позволяет работать мне с etree, но других она не останавливает :-).

..bw



Отредактировано (Сен. 30, 2011 16:23:25)

Офлайн

#5 Сен. 30, 2011 19:46:04

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Простой парсинг XMl. c чего начать?

bw
зачем тянуть/собирать этот lxml?
Он:
1. Быстрый: http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/
2. Удобный: http://www.ibm.com/developerworks/xml/library/x-hiperfparse/
3. Не падает на документах с кривой структурой

Офлайн

#6 Сен. 30, 2011 22:37:19

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Простой парсинг XMl. c чего начать?

1. Преждевременная оптимизация зло, нужно думать головой а не чьими-то бложиками.
2. Субъективно. В батарейках есть DOM и ElementTree, выбирай что хочешь и не нужны дополнительные зависимости.
3. У XML не должно быть кривой структуры. А если говорить про HTML, то lxml отсасывает у html5lib, и по этому параметру не годится.

..bw



Офлайн

#7 Сен. 30, 2011 23:24:23

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Простой парсинг XMl. c чего начать?

bw
1. Преждевременная оптимизация зло, нужно думать головой а не чьими-то бложиками.
Использование хорошо оптимизированных библиотек не есть предварительная оптимизация, ссылку привел как пример - первое что выпало по запросу.

bw
2. Субъективно. В батарейках есть DOM и ElementTree, выбирай что хочешь и не нужны дополнительные зависимости.
Я не претендую на объективность, ТС спросил - я ответил.

bw
3. У XML не должно быть кривой структуры.
Но она может быть. И то что lxml умеет переваривать и плохую/неправильную структуру xml / html является достоинством

bw
А если говорить про HTML, то lxml отсасывает у html5lib, и по этому параметру не годится
Пруф?

Офлайн

#8 Окт. 1, 2011 08:16:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Простой парсинг XMl. c чего начать?

Не очень силен в этих вопросах, но разница есть еще в том что lxml поддерживает еще один интерфейс - objectify. См что мне подсказал dimabest http://python.su/forum/viewtopic.php?id=12494. Это сильно упростило мне жизнь (просто удобнее пользоваться)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version