голосование
PHP
jQuery
Firebird
BASH
HTML
Ресурсы
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
'''
просмотры: 193, уровень: лёгкий уровень, рейтинг: 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
https://my.colobridge.net/aff.php?aff=047 серверы vps/vds облачный vps/vds сервер colobridge от 9,9 евро в месяц