【发布时间】:2021-03-16 11:05:05
【问题描述】:
我知道关于这个主题已经有很多类似的问题,但似乎没有一个解决方案适合我。 我有两个看起来像这样的文件:
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')
我能做什么?
【问题讨论】:
-
如果可以用lxml代替ElementTree,那就很简单了。
标签: python xml elementtree