温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2023-03-14 11:07:25 来源:亿速云 阅读:104 作者:iii 栏目:开发技术

今天小编给大家分享一下Python中xmltodict对xml的操作方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Python xmltodict对xml的操作

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

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

<?xml version="1.0"?>
<mydocument has="an attribute">
    <and>
        <many>elements</many>
        <many>more elements</many>
    </and>
    <plus a="complex">
        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 well
xmltodict 也有unparse函数让您可以转回XML。

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

Python XML解析,xmltodict模块

安装xmltodict: pip3 install xmltodict

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

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

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

# coding:utf-8
import 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)

以上就是“Python中xmltodict对xml的操作方式是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI