Форум сайта python.su
Доброго времени суток. Сам я начинающий программист и порой не получается что либо сделать.
Сразу к делу.
Не получается справиться с задачей , суть такова
Имеется 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())
Прикреплённый файлы: extMap.xml (4,8 KБ)
Офлайн
Немного подравнял:
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())
Отредактировано noob_saibot (Март 27, 2014 12:29:34)
Офлайн