Python 使用xmltodict读取xml

临时加需求做国际化, 安卓的字符都使用xml格式写在文件里, 为了方便准备用Python写个小程序把安卓的xml文件读取出来,并转成oc格式的多语言格式.

安卓的xml文件大概是这样的:


    <string name="invite_code">邀请码string>
    <string name="qrcode_generate_fail">二维码生成失败string>
    <string name="choose_your_share_way">选择你的分享方式string>
    <string name="friend_community">朋友圈string>

我使用的是Python3, xmltodict 框将xml转成字典格式.
https://github.com/martinblech/xmltodict.git

安装 xmltodict 在命令行输入

$ pip install xmltodict

但是会提示错误

这里写图片描述

原因是mac电脑默认装的是Python2.7版本
在网上查找了一下资料, 知乎上有人给提示

没必要改来改去, 还是直接加版本号比较好, python就是2的版本,python3就是3的版本. pip是2的版本, pip3是3的版本.
https://www.zhihu.com/question/30941329

于是尝试了一些使用

$ pip3 install xmltodict

果然安装成功.

后面就可以使用了. 代码

import xmltodict

path = "/Users/aaa/Desktop/strings.xml"
with open(path) as fd:
    obj = xmltodict.parse(fd.read())
    resources =  obj["resources"]
    strings = resources["string"]
    for item in strings:
        print("-------------------")
        for k, v in item.items():
            print("\n" + "value  " + v + "key  " + k)

打印结果

-------------------
value  invite_codekey  @name
value  邀请码key  #text
-------------------
value  qrcode_generate_failkey  @name
value  二维码生成失败key  #text
-------------------
value  choose_your_share_waykey  @name
value  选择你的分享方式key  #text
-------------------
value  friend_communitykey  @name
value  朋友圈key  #text

已经把单行数据都读取出来了, 剩下的就是转出成OC的键值对格式了

你可能感兴趣的:(python)