голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как распарсить xml при помощи модуля xml.dom.minidom Python

В предыдущей статье как сгенерировать xml при помощи модуля xml.dom.minidom Python я сгенерировал xml-документ. Теперь решил распарсить этот xml-документ. Нашёл статью Python – Read XML file (DOM Example). Статья довольно простая. В ней показан парсинг xml-документа при помощи модуля minidom. Рассмотрим наш документ product.xml. Тут два блока product в корневом элементе root.


<?xml version="1.0" ?>
<root>
  <name>Production for you</name>
  <product color="white">
    <decr color="green">Text decr 1</decr>
    <text color="white">Text article 1</text>
    <price red="green">100 rub</price>
  </product>
  <product color="white">
    <decr color="green">Text decr 2</decr>
    <text color="white">Text article 2</text>
    <price red="green">200 rub</price>
  </product>
</root>

В нашем примере используется модуль xml.dom.minidom. Получаем название файла doc.getElementsByTagName("name")[0]. Далее находим ветку product с листами: decr, text, price. Цикл for поможет вытащить данные из объекта product (ветка). Далее выводим данные при помощи старого стиля %. Если хотите выводить данные разными способами, то прочитайте статью форматирование строк format Python.


from xml.dom import minidom

doc = minidom.parse("product.xml")

# doc.getElementsByTagName returns NodeList
name = doc.getElementsByTagName("name")[0]
print(name.firstChild.data)

product = doc.getElementsByTagName("product")
for prod in product:
    decr = prod.getElementsByTagName("decr")[0]
    text = prod.getElementsByTagName("text")[0]
    price = prod.getElementsByTagName("price")[0]
    print("описание: %s, текст: %s, цена: %s" % (decr.firstChild.data,\
    text.firstChild.data, price.firstChild.data))
'''
вывод:
Production for you
описание: Text decr 1, текст: Text article 1, цена: 100 rub
описание: Text decr 2, текст: Text article 2, цена: 200 rub
'''
просмотры: 2783, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-09-21 21:23:33
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.