ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python解析xml字符串与xml转json

2022-02-03 21:36:54  阅读:216  来源: 互联网

标签:xml python getElementsByTagName 0410000043 collection 9999 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)

 

标签:xml,python,getElementsByTagName,0410000043,collection,9999,json
来源: https://www.cnblogs.com/1314520xh/p/15862035.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有