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 ,但主要对文档和数据 ...
随机推荐
- Elasticsearch搜索引擎学习笔记(二)
可视化插件 GitHub搜索elasticsearch-head并下载,如果网络不好可以在gitee上搜索. 这是一个前端项目,需要安装nodejs. 在项目根目录执行 npm install npm ...
- SuperSocket 服务端 和 SuperSocket.ClientEngine 客户端及普通客户端
internal class Program { //static void Main(string[] args) //{ // byte[] arr = new byte[1024]; // 1. ...
- C# 之委托的多播
1 delegate void NumberCalculator(int a); 2 class Program 3 { 4 static int num1 = 100; 5 static void ...
- 超详细移动端侧AI口罩识别实现与部署(含源码)
开发环境 数据标注:label studio :https://labelstud.io/ 模型训练:tensorflow 附完整的训练源码和数据 部署开发:Android studio + tens ...
- rust学习笔记(7)
crate 中文是货箱,这是我们编写自己的库或者程序的方式 库 使用rustc可以把一个文件编译为lib rustc --crate-type=lib rary.rs 构建的方式选择lib 编译出来的 ...
- mysql order by 中文排序
前言 在 MySQL 中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在 MySQL 的很多版本中都存在. 如果这个问题不解决,那么 ...
- php7有哪些新特性
目录 太空船操作符 标量类型声明和返回值的类型说明 null 合并操作符 常量数组 namespace 批量导入 非混合模式的 use 声明 混合模式的 use 声明 复合模式的 use 声明 thr ...
- AI 代理的未来是事件驱动的
AI 代理即将彻底改变企业运营,它们具备自主解决问题的能力.适应性工作流以及可扩展性.但真正的挑战并不是构建更好的模型. 代理需要访问数据.工具,并且能够在不同系统之间共享信息,其输出还需要能被多个服 ...
- Docker镜像介绍
一.Docker镜像介绍 镜像是Docker的三大核心概念之一. Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认的镜像仓库下载(默认使用Docker Hu ...
- D的SDK的设置
有点烦,被困扰.看大虾的文章一并感谢: 进入D:\Users\Public\Documents\Embarcadero\Studio\22.0\CatalogRepository\AndroidSDK ...