Анализ с помощью парсера ElementTree

analiz s pomoshhju parsera elementtree Текст и язык

Четвертый инструмент, популярный пакет ElementTree, входит в состав стандартной библиотеки и позволяет анализировать и генерировать документы XML. Как парсер он по сути является более питониче- ской реализацией модели DOM — он точно так же преобразует документ в дерево объектов, но предоставляет более легковесный прикладной интерфейс навигации по дереву, потому что он разрабатывался специально для языка Python.

Пакет ElementTree предоставляет простые в использовании инструменты синтаксического анализа, изменения и создания документов XML. При анализе и создании документов он представляет их в виде деревьев объектов «элементов». Каждый элемент в дереве имеет имя тега, словарь атрибутов, текстовое значение и последовательность дочерних элементов. Объекты элементов, созданные при анализе, можно просматривать с помощью обычных циклов Python, когда их структура известна, и с помощью приема рекурсивного спуска, когда возможна произвольная вложенность элементов.

Изначально система ElementTree была сторонним расширением, но позднее значительная ее часть была включена в состав стандартной библиотеки Python в виде пакета xml.etree. Пример 19.12 демонстрирует, как можно использовать этот пакет для анализа нашего файла со списком книг.

Пример 19.12. PP4E\Lang\Xml\etreebook.py

Анализ XML: ElementTree (etree) предоставляет API на основе языка Python для анализа/создания документов XML

import pprint

from xml.etree.ElementTree import parse

mapping = {}

tree = parse(‘books.xml’)

for B in tree.findall(‘book’):

isbn = B.attrib[‘isbn’]

for T in B.findall(‘title’):

mapping[isbn] = T.text

pprint.pprint(mapping)

Этот сценарий выводит те же результаты, что и сценарии, использующие парсеры SAX и DOM, но программный код, необходимый для извлечения данных из файла, выглядит на этот раз намного проще:

C:\\PP4E\Lang\Xml> python etreebook.py

{‘0-596-00128-2’:

‘0-596-00797-3’:

‘0-596-10046-9’:

‘0-596-15806-8’:

‘0-596-15808-4’:

‘0-596-15810-6’:

‘Python & XML’,

‘Python Cookbook, 2nd Edition’,

‘Python in a Nutshell, 2nd Edition’,

‘Learning Python, 4th Edition’,

‘Python Pocket Reference, 4th Edition’, ‘Programming Python, 4th Edition’}

 

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий