我正在尝试ET.interparse()
在for
循环中编写 XML 元素的新属性值。关于如何做到这一点的建议?
我想避免打开整个 XML 文件,因为它非常大,这就是为什么我一次只在开始事件中打开一个元素。
这是我的代码:
import xml.etree.cElementTree as ET
def main_function:
osmfile = 'sample.osm'
osm_file = open(osmfile, 'r+')
for event, elem in ET.interparse(osm_file, events=('start',)):
if elem.tag == 'node':
for tag in elem.iter('tag'):
if is_addr_street_tag(tag): # Function returns boolean
cleaned_street_name = cleaning_street(tag.attrib['v']) # Function returns cleaned street name
##===================================================##
## Write cleaned_street_name to XML tag attrib value ##
##===================================================##
osm_file.close()