Уведомления

Группа в Telegram: @pythonsu

#1 Март 27, 2014 11:23:43

protect13
Зарегистрирован: 2013-11-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

parser xml

Доброго времени суток. Сам я начинающий программист и порой не получается что либо сделать.
Сразу к делу.
Не получается справиться с задачей , суть такова
Имеется xml. файл его нужно пропарсить а именно
1. Разобрать файл при помощи elementTree
2. Построить дерево тегов, получить из каждого тега все его параметры
3. Вывод - в консоль
4. Код откомментировать
5. Разбить всё на функции

Из всего этого не получается “получить из каждого тега все его параметры”.

А вот что имеется.

# импортируем ElementTree
import xml.etree.ElementTree as xmlparser
# создаем переменную source передаем в неё “extMap.xml”
source = ‘extMap.xml’;
#читаем extMap,xml с помощью созданной функции
def xml_reader(source):
try:
doc = xmlparser.parse(source);
# исключение если файл не найден
except FileNotFoundError:
print('File not found at: ‘ + source)
exit(0)

return doc

# добавляем отступы
def padding(length):
return (’. ‘ * (length -1)) + ’|—'

# пробуем произвести вывод дерева
def print_xml_tags(doc,level = 0):
if level == 0:
print(doc.tag)
else:
print(padding(level) + doc.tag)

for node in doc:
print_xml_tags(node, level + 1)

doc = xml_reader(source)
print_xml_tags(doc.getroot())

Прикреплённый файлы:
attachment extMap.xml (4,8 KБ)

Офлайн

#2 Март 27, 2014 12:28:03

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

parser xml

Немного подравнял:

import xml.etree.ElementTree as xmlparser
source = "D:/extMap.xml"
def xml_reader(source):
    try:
        doc = xmlparser.parse(source)
    except:
        print("File not found at: " + source)
        exit(0)
    return doc
def print_xml_tags(doc,level = 0):
    if level == 0:
        print doc.tag,doc.attrib
    else:
        print level*"|-"+doc.tag,doc.attrib
    for node in doc:
        print_xml_tags(node, level + 1)
doc = xml_reader(source)
print_xml_tags(doc.getroot())
doc.attrib выдаст атрибуты тега.

Отредактировано noob_saibot (Март 27, 2014 12:29:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version