python解析xml字符串与xml转json

2022/2/3 22:13:06

本文主要是介绍python解析xml字符串与xml转json,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、python解析xml字符串

from xml.dom.minidom import parseString
xml_str=""" <root>
                <privateKey>UAP_2oSY90</privateKey>
                <srcContent>
                </srcContent>
                <dataContent>
                    <syncContent dataType="1" operType="1">
                        <syncUnicode>0410000043</syncUnicode>
                        <oldContent realmId="1">
                            <baseInfo>
                                <deptName text="组织机构全称">旧部门</deptName>
                                <deptUniCode text="组织机构编码">0410000043</deptUniCode>
                                <showNum text="排序编号">9999</showNum>
                                <deptStatus text="组织机构状态">1</deptStatus>
                                <isCorp text="组织机构类型" deptConfId="3">1</isCorp>
                            </baseInfo>
                            <parentInfo>
                                <parentCode id="8471" text="父级组织机构唯一标识"
                                    levelCode="561G.8471G" deptName="人">
                                    0432000000
                                </parentCode>
                            </parentInfo>
                        </oldContent>
                        <changeContent>
                        </changeContent>
                        <newContent realmId="1">
                            <baseInfo>
                                <deptName text="组织机构全称">新部门</deptName>
                                <deptUniCode text="组织机构编码">0410000043</deptUniCode>
                                <showNum text="排序编号">9999</showNum>
                                <deptStatus text="组织机构状态">1</deptStatus>
                                <isCorp text="组织机构类型" deptConfId="3">1</isCorp>
                            </baseInfo>
                            <parentInfo>
                                <parentCode id="8471" text="父级组织机构唯一标识"
                                    levelCode="561G.8471G" deptName="人">
                                    0432000000
                                </parentCode>
                            </parentInfo>
                        </newContent>
                    </syncContent>
                </dataContent>
            </root>
        """
doc = parseString(xml_str)
collection = doc.documentElement
returnInfo = collection.getElementsByTagName("deptName")[0].childNodes[0].data
# 返回的是:天

dataType=collection.getElementsByTagName("syncContent")[0].getAttribute("dataType")
operType=collection.getElementsByTagName("syncContent")[0].getAttribute("operType")
#返回的是:1

#获取节点名称,查找元素
for i in collection.getElementsByTagName("deptName"):
    print (i.childNodes[0].data)
    #返回:旧部门
    #     新部门

oldContents = collection.getElementsByTagName("oldContent")    
for oldContent in oldContents:
    baseInfos = oldContent.getElementsByTagName('baseInfo')
    for baseInfo in baseInfos:
        baseInfo.getElementsByTagName('deptName')[0].childNodes[0].data

 

2、xml转json的函数
import json
import xmltodict
#定义xml转json的函数
xmlstr =""" <root>
                <privateKey>UAP_2oSY90</privateKey>
                <srcContent>
                </srcContent>
                <dataContent>
                    <syncContent dataType="1" operType="1">
                        <syncUnicode>0410000043</syncUnicode>
                        <oldContent realmId="1">
                            <baseInfo>
                                <deptName text="组织机构全称">旧部门</deptName>
                                <deptUniCode text="组织机构编码">0410000043</deptUniCode>
                                <showNum text="排序编号">9999</showNum>
                                <deptStatus text="组织机构状态">1</deptStatus>
                                <isCorp text="组织机构类型" deptConfId="3">1</isCorp>
                            </baseInfo>
                            <parentInfo>
                                <parentCode id="8471" text="父级组织机构唯一标识"
                                    levelCode="561G.8471G" deptName="人">
                                    0432000000
                                </parentCode>
                            </parentInfo>
                        </oldContent>
                        <changeContent>
                        </changeContent>
                        <newContent realmId="1">
                            <baseInfo>
                                <deptName text="组织机构全称">新部门</deptName>
                                <deptUniCode text="组织机构编码">0410000043</deptUniCode>
                                <showNum text="排序编号">9999</showNum>
                                <deptStatus text="组织机构状态">1</deptStatus>
                                <isCorp text="组织机构类型" deptConfId="3">1</isCorp>
                            </baseInfo>
                            <parentInfo>
                                <parentCode id="8471" text="父级组织机构唯一标识"
                                    levelCode="561G.8471G" deptName="人">
                                    0432000000
                                </parentCode>
                            </parentInfo>
                        </newContent>
                    </syncContent>
                </dataContent>
            </root>
        """
#parse是的xml解析器
xmlparse = xmltodict.parse(xmlstr)
#json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。
#dumps()方法的ident=1,格式化json
jsonstr = json.dumps(xmlparse,indent=1)
print(jsonstr)

 



这篇关于python解析xml字符串与xml转json的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程