PHP前端开发

Python中xmltodict对xml的操作方式是什么

百变鹏仔 2个月前 (01-21) #Python
文章标签 操作

Python xmltodict对xml的操作

xmltodict是另一个简易的库,它致力于将xml变得像json.

下面是一个简单的示例XML文件:

<?xml  version="1.0"?><mydocument>    <and>        <many>elements</many>        <many>more elements</many>    </and>    <plus>        element as well    </plus></mydocument>

这是第三方包,在处理前先用pip来安装

pip install xmltodict

可以像下面这样访问里面的元素,属性及值:

import xmltodict with open("test.xml") as fd:          # 将XML文件装载到dict里面    doc = xmltodict.parse(fd.read())    print(doc["mydocument"]["@has"])  # an attribute    print(doc["mydocument"]["and"])   # OrderedDict([(u'many', [u'elements', u'more elements'])])    print(doc["mydocument"]["and"]["many"])   # [u'elements', u'more elements']    print(doc["mydocument"]["plus"]["@a"])    # complex    print(doc["mydocument"]["plus"]["#text"]) # element as wellxmltodict 也有unparse函数让您可以转回XML。

该函数有一个streaming模式适合用来 处理不能放入内存的文件,它还支持命名空间

立即学习“Python免费学习笔记(深入)”;

Python XML解析,xmltodict模块

安装xmltodict: pip3 install xmltodict

demo.py(xml字符串解析成类字典):

# coding:utf-8import xmltodict   # 导入 # XML格式字符串xml_str = """        <xml>            <name>张三</name>            <age>18</age>        </xml>        """  xml_dict = xmltodict.parse(xml_str)   # 解析xml字符串 print(type(xml_dict))  # <class>  类字典型,可以按照字典方法操作 print xml_dict # 遍历for key, val in xml_dict['xml'].items():    print key, "---", val</class>

demo.py(字典转成xml字符串):

# coding:utf-8import xmltodict   # 导入 # 字典xml_dict = {                "xml": {                    "name" : u"张三",                    "age" : 18                }            } # 字典转换成XML字符串# xml_str = xmltodict.unparse(xml_dict)xml_str = xmltodict.unparse(xml_dict, pretty=True)  # pretty表示友好输出(有换行) print(xml_str)