如何解决比较两个xml文件之间的属性值和文本并在Python中写入文件
我知道已经有很多关于这个主题的类似问题,但似乎没有一个解决方案适合我。 我有两个看起来像这样的文件:
strings_src.xml:
<resources>
<string name="app_name">SkidSteerLoader</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="title_activity_speed">SpeedActivity</string>
</resources>
strings_da.xml:
<resources>
<string name="title_activity_speed">SpeedActivity</string>
<string name="app_name">SkidSteerLoader</string>
<string name="hello_world">Hej Verden!</string>
</resources>
结构非常相似,但第二个文件中的项目可能较少。 我需要比较字符串名称和每个字符串的值:如果字符串名称相同且字符串值相同,则需要在字符串中添加类似 traduci = "yes" 的内容第二个文件的标签。 类似的东西:
<resources>
<string name="title_activity_speed" traduci = "yes">SpeedActivity</string>
<string name="app_name" traduci = "yes">SkidSteerLoader</string>
<string name="hello_world">Hej Verden!</string>
</resources>
我已经尝试使用元素树在python中使用for循环和if条件的组合,但我显然在那里做错了
import xml.etree.ElementTree as ET
tree_src = ET.parse('strings_src.xml')
root_src = tree_src.getroot()
tree_tar = ET.parse('strings_da.xml')
root_tar = tree_tar.getroot()
for child_src in root_src:
for child_tar in root_tar:
if child_src.tag == child_tar.tag and child_src.text != child_tar.text:
child_tar.set = ('traduci','yes')
tree_tar.write('output_da.xml')
我能做什么?
解决方法
您可以分别遍历每个文件,使用第一个文件 dict = {sourceline:elem_text} 构建一个字典,然后在遍历第二个文件时将每一行与内存中的 dict 进行比较,并根据需要进行更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。