Используя библиотеку lxml, я объективировал некоторые элементы (пример кода ниже)
config = objectify.Element("config")
gui = objectify.Element("gui")
color = objectify.Element("color")
gui.append(color)
config.append(gui)
config.gui.color.active = "red"
config.gui.color.readonly = "black"
config.gui.color.match = "grey"
В результате получается следующая структура
config
config.gui
config.gui.color
config.gui.color.active
config.gui.color.readonly
config.gui.color.match
Я могу получить полный путь для каждого из объектов
for element in config.iter():
print(element.getroottree().getpath(element))
Элементы пути разделяются косой чертой, но это не проблема. Я не знаю, как я могу получить только родительскую часть пути, чтобы я мог использовать setattr, чтобы изменить значение данного элемента
Например, для элемента
config.gui.color.active
Я хотел бы ввести команду
setattr(config.gui.color, 'active', 'something')
Но понятия не имею, как получить «родительскую» часть полного пути.