Завершите класс, чтобы он работал рекурсивно для 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