在下面的XML中,我只想解析它并在它找到<Name>EveIapsGrdMes</Name>
时更新该值,然后在下一个节点中,即<Value>12345</Value>
,只有Value
应该更新为12345
。有人能帮我弄明白怎么处理吗
<?xml version='1.0' encoding='UTF-8'?>
<EDS>
<Vector>
<Number>1</Number>
<ScalarSection>
<Scalar>
<Name>Patching_Path</Name>
<Value>DO FlashManager.cmm "--patch --deviceName ALL"</Value>
<Comment />
</Scalar>
<Scalar>
<Name>EveIapsGrdMes</Name>
<Value>A</Value>
<Comment>EveIapsGrdMes Sensor Value</Comment>
</Scalar>
<Scalar>
<Name>EveIapsOverTemp</Name>
<Value>Icsp_Dem_Deb_LfEve_UNIONFIED.Icsp_Dem_Deb_LvErr_15[31]</Value>
<Comment>EveIapsOverTemp Sensor Value</Comment>
</Scalar>
<Scalar>
<Name>EveIapsUnderTemp</Name>
<Value>Icsp_Dem_Deb_LfEve_UNIONFIED.Icsp_Dem_Deb_LvErr_15[32]</Value>
<Comment>EveIapsUnderTemp Sensor Value</Comment>
</Scalar>
<EveDtsUnderTemp />
<EveDtsOverTemp />
</ScalarSection>
<OneDMapSection />
<TwoDMapSection />
</Vector>
</EDS>
这是我的密码。我可以访问名称标签EveIapsGrdMes
,但如何更改下一个Value
标签
import xml.etree.ElementTree as ET
with open('sys_bswm.xml', encoding="UTF-8") as f:
tree = ET.parse(f)
root = tree.getroot()
for elem in root.getiterator():
print(elem)
try:
if elem.tag=='Name':
if elem.text == 'EveIapsGrdMes':
'Update the next tage Value, i,e <Value>12345</Value>'
else:
'pass'
except AttributeError:
'pass' tree.write('sys_bswm.xml',xml_declaration=True,method='xml', encoding="UTF-8")
第一部分已经完成。需要做第二部分。此外,还需要将结果写入新的XML文件中
下面的代码查找所需的元素并将该值更改为新值
输出
相关问题 更多 >
编程相关推荐