Как изменить ключи атрибутов ElementTree? - PullRequest
3 голосов
/ 04 апреля 2011

Я хочу изменить атрибуты существующего элемента, и не только значения, но также добавить / удалить / изменить ключи. Например,

<frame_geometry name="border" has_title="false"/>  

Я хотел бы добавить: rounded_top_left = "5" и т. Д ...
Возможно ли изменение ключей атрибутов элемента после создания?

Если нет, возможно, я мог бы использовать обходной путь, что-то вроде сохранения всех атрибутов элемента во временном словаре, а затем создания нового элемента из этого +/- желаемых изменений? Однако это решение нежелательно, поскольку элементы, которые мне нужно изменить, также имеют несколько подэлементов ...

Ответы [ 2 ]

4 голосов
/ 04 апреля 2011

Я понял это. Так просто.
Добавить новый атрибут:

element.attrib['newkey'] = 'newvalue'  

добавит атрибут к существующему элементу.
Чтобы удалить существующий атрибут:

del element.attrib['unwanted_key']  

Что касается изменения существующих ключей, я до сих пор не знаю, возможно ли это, но с помощью функции добавления / удаления вы можете легко обойти это.

0 голосов
/ 23 мая 2013

Я добился успеха, перебирая элементы, которые надеялись на функцию стиля .rename

 For element in XMLData:
     if element.tag = Searching:
         element.tag = "NewTag"
         #Now its element.NewTag
...