Найти - Пользователи
Полная версия: Простой парсинг XMl. c чего начать?
Начало » Python для новичков » Простой парсинг XMl. c чего начать?
1
Andrewshkovskii
Есть следующая задача:
Пропарсить xml, найти в нем теги , например, такие:
 <something class="some_class" name="some_name">
(только свойство class должно быть определенного значения, проще говоря in some_list)
У этого элемента поискать чилд-тег , например такой:
        <property name="is_item" stdset="0">
<bool>true</bool>
</property>
Если такого чилда нету - то создать его.если нету :pass : )
Внимание вопрос : С чего начать, что почитать? Задача тривиальная, какой модуль заюзать ? Я бы хотел сам разобраться, только вот выбор модуля удобного сделать не могу - нет опыта.
Спасибо.
s0rg
возмите lxml
o7412369815963
пример
bw
В батарейках xml есть, зачем тянуть/собирать этот lxml?!
Парсить можно в разные типы деревьев/документов: dom и etree (начиная с py2.5). Моя религия не позволяет работать мне с etree, но других она не останавливает :-).

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

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

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

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

bw
А если говорить про HTML, то lxml отсасывает у html5lib, и по этому параметру не годится
Пруф?
doza_and
Не очень силен в этих вопросах, но разница есть еще в том что lxml поддерживает еще один интерфейс - objectify. См что мне подсказал dimabest http://python.su/forum/viewtopic.php?id=12494. Это сильно упростило мне жизнь (просто удобнее пользоваться)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB