I have been doing some modifications on an .xml file using python and lxml library and ElementTree. I have this result:
<component xmlns:xsi="http://www.w3.orgr">
<memoryMaps>
<memoryMap>
<name>name</name>
<description>description</description>
<peripheral>
<name>periph</name>
<description>description</description>
<baseAddress>0x0</baseAddress>
<range>0x8</range>
<width>32</width>
<registers>
<register>
<name>reg1</name>
<displayName>1</displayName>
....
</register>
<register>
<name>reg2</name>
<displayName>1</displayName>
.................
</register>
<register>
<name>reg3</name>
<displayName>1</displayName>
..................
</register>
</registers>
</peripheral>
</memoryMap>
</memoryMaps>
</component>
what I want now is in every 'register' to have 'name' and 'displayName' with same text (by copying the text of name in the displayName) like this:
<registers>
<register>
<name>reg1</name>
<displayName>reg1</displayName>
....
</register>
<register>
<name>reg2</name>
<displayName>reg2</displayName>
.................
</register>
<register>
<name>reg3</name>
<displayName>reg3</displayName>
..................
</register>
</registers>
I tried a code like this after parsing my file:
for register in root.findall('.//register'):
tempo = register.find('.//name').text
for EL in root.iter('displayName'):
EL.text = tempo
This seems to replace only in the last register correctly, and the rest of registers have wrong display name. I know I have a problem with my loop maybe?
Please advice Thank you!