在以下情况下,我必须从xml文件中提取具有特定值“ 10640”的属性调用"dlFrequencyNumber"
,但是属性"dlFrequencyNumber"
出现在具有不同值的多行中,>
getElementsByTagName()
并没有帮助,因为它总是查找第一次出现的情况。
我可以在for循环的帮助下通过遍历所有行来做到这一点,但是有其他替代方法可以做到这一点。请提出建议。
'''
<attributes>
<dlFrequencyNumber>10615</dlFrequencyNumber>
<dlFrequencyNumber>10640</dlFrequencyNumber>
<dlFrequencyNumber>10665</dlFrequencyNumber>
'''
非常感谢!
愿望
答案 0 :(得分:0)
好。试试这个:
import xml.etree.ElementTree as ET
VALUE_REPLACEMENT = '999'
VALUE_TO_REPLACE = '10640'
xml = '''<attributes>
<dlFrequencyNumber>10615</dlFrequencyNumber>
<dlFrequencyNumber>10640</dlFrequencyNumber>
<dlFrequencyNumber>10665</dlFrequencyNumber>
</attributes>'''
root = ET.fromstring(xml)
found = [freq for freq in root.findall('dlFrequencyNumber') if freq.text == VALUE_TO_REPLACE][0]
found.text = VALUE_REPLACEMENT
print(ET.tostring(root, encoding='utf8', method='xml'))