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

Как распарсить 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
'''
просмотры: 1455, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-09-21 21:23:33
проголосовать:

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






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