问题描述
我目前正在处理几个XML文件,这些文件要求更改元素mods:namePart的文本。我创建了一个脚本,该脚本应该遍历我在特定目录中指定的所有XML文件并进行预期的更改。但是,当我运行脚本时,所做的更改不会反映在新文件中。它按预期执行,我什至在控制台中得到“ namepart changes”的输出,但我要替换的文本保持不变。请帮忙!! 我对编码非常陌生,因此欢迎任何提示/评论。这是我正在使用的代码:
list_of_files = glob.glob('/Users/#####/Documents/test_xml_files/*.xml')
for file in list_of_files: xmlObject = ET.parse(file)
root = xmlObject.getroot()
namespaces = {'mods':'http://www.loc.gov/mods/v3'}
for namePart in root.iterfind('mods:name/mods:namePart',namespaces):
if namePart.text == 'Tsukioka,Kōgyo,1869-1927':
new_namePart = namePart.text.replace('Tsukioka,1869-1927','Tsukioka Kōgyo,1)
namePart.text == new_namePart
print('namepart changed')
else:
continue
nf = open(os.path.join('/Users/####/Documents/updated_test_directory',os.path.basename(file)),'wb')
xmlString = ET.tostring(root,encoding="utf-8",method="xml",xml_declaration=None)
nf.write(xmlString)
nf.close()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)