Чтение XML и создание свойств динамического объектаPython

Программы на Python
Anonymous
Чтение XML и создание свойств динамического объекта

Сообщение Anonymous »

Завершите класс XMLReader, которому мы передаем XML-документ в виде строки в конструктор. Он преобразует XML-документ в динамический объект, в котором узлы доступны как свойства объекта, а внутренний XML доступен через свойство text.
Завершите класс, чтобы он работал рекурсивно для XML любого уровня.

Код: Выделить всё

xml_string = " Tove    Jani    Reminder    Don't forget me this weekend!    "
Это мой код:

Код: Выделить всё

import xml.etree.ElementTree as ET

class XmlReader:
def __init__(self, xml=None):
self.text = ""
if xml is not None:
doc = ET.fromstring(xml)
self.text = ET.tostring(doc).decode('ascii')
xml = XmlReader()
xml.text = doc.text
setattr(self, doc.tag, xml)

xml_string = \
"" + \
"" + \
"Tove" +\
"Jani" + \
"Reminder" + \
"Don't forget me this weekend!" +\
""

xmlObj = XmlReader(xml_string)
print(xmlObj.text)
print(xmlObj.note.text)
print(xmlObj.note.to.text)
Ожидаемый результат:

Код: Выделить всё

" ToveJaniReminderDon't forget me this weekend!"

"Tove"

"Jani"
В моем коде выдается ошибка:

Код: Выделить всё

ToveJaniReminderDon't forget me this weekend!
None
Traceback (most recent call last):
print(xmlObj.note.to.text)
AttributeError: 'XmlReader' object has no attribute 'to'
Как правильно решить эту программу?

Подробнее здесь: https://stackoverflow.com/questions/785 ... properties

Вернуться в «Python»