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的更多相关文章
- xml字符串转xml对象,xml对象转json对象
xml字符串转xml对象: function loadXml(str) { if (str == null) { return null; } var doc = str; try{ doc = cr ...
- js压缩xml字符串,将xml字符串转换为xml对象,将xml对象转换为json对象
/** * 压缩xml字符串 */ function compressXmlStr(str){ var prefix, suffix; var i = str.indexOf("\r&quo ...
- xml字符串,xml对象,数组之间的相互转化
<?phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { pu ...
- 吴裕雄--天生自然python学习笔记:Python3 XML 解析
什么是 XML? XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. XML 被设计用来传输和存 ...
- tinyXml直接解析XML字符串
一直都用tinyxml直接LoadFile来解析XML,发现原来也可以直接解析XML字符串. XML文件: <?xml version=\"1.0\" encoding=\& ...
- python中用ElementTree.iterparse()读取xml文件中的多层节点
我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...
- 将Xml字符串转换成(DataTable || DataSet || XML)对象
今天用到一个功能:就是把从数据库读出来的内容转换成XML字符串流格式,并输出给一个功能函数.在写的过程,为方便以后的使用,我对这一功能进行分装.该类的具体格式如下:XmlConvert类命名空间:Ni ...
- Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串
原文:Winform: use the WebBrowser to display XML with xslt, xml, xslt 转 html 字符串 声明xml字符串: string xml = ...
- C#读取XML字符串及将XML字符串反序列化为对象
在开发中遇到调用接口范围XML格式结果情况,获取结果中我们需要的信息则可能需要这两种数据处理: 1.如何将xml字符串转换为xml对象,及查询想要的节点: 通过XmlDocument对象加载xml字符 ...
- Python 解析构建数据大杂烩 -- csv、xml、json、excel
Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记语言 Html ,但主要对文档和数据 ...
随机推荐
- 读论文-基于Python的协同过滤算法的研究与应用实现
前言 今天读的论文为一篇名为<基于Python的协同过滤算法的研究与应用实现>的论文,文章是在2019年9月发表于<电脑知识与技术>的一篇期刊论文. 摘要 随着科学技术的快速发 ...
- Windows编程----进程:环境变量
什么是系统环境变量 每台计算机针对当前用户和系统中所有用户分别提供了两个环境变量设置,通过计算机属性>环境变量的界面,我们可以查看当前这台计算机上的所有环境变量,这些环境变量都是key-valu ...
- Java的volatile和sychronized底层实现
1. 概览 从Java代码级别到硬件级别各层都是如何实现的 2. Synchronized 2.1 字节码层面 使用javap -verbose <class文件>可以查看到字节码信息,其 ...
- go 密码 hash 加密
目录 bcrypt加密算法原理和应用 简单使用 一起实现一个demo 获取用户输入的密码 Hash & Salt 用户的密码 目前我们做了什么 验证密码 更新 Main 函数 全部代码 bcr ...
- 如何利用 PostgreSQL 的 JSONB API 作为扩展的轻量级 JSON 解析器
前言 在基于 C 语言的 PostgreSQL 扩展开发中,您可能会遇到需要处理 JSON 等结构化数据的情况.通常,您可能会在扩展中引入第三方 JSON 解析库,例如 cJSON 或 libjans ...
- 【JVM之内存与垃圾回收篇】垃圾回收相关算法
垃圾回收相关算法 标记阶段:引用计数算法 在堆里存放着几乎所有的 Java 对象实例,在 GC 执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为己经死亡的对象, ...
- java的反射是要先实例化的!
java两种获得反射的方法 ,一种是Class.forName("A"); 另一种是 A a = new A(); a.getClass(); 第二种是自己实例化之后,我们在类的静 ...
- 什么是MIME类型-基础知识补全
MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)是一种标准,用于标识互联网上传输的文件类型.它最初是为电子邮件设计的,后来被广泛应用于W ...
- python练习-爬虫(续)
流程: 1 设置url 2 设置消息头 3 设置消息体 4 获取响应 5 解析相应 6 验证数据 接下来就是查询数据了. # 识别图片中的文字 #image = Image.open('captcha ...
- Greenplum常用命令、函数
Greenplum常用查询命令 #查看test_bd事务(即数据库)下的所有表名包含 user 的 表信息 SELECT UPPER(A.SCHEMANAME) AS SCHEMANAME, UPPE ...