'''
"D:\three_test\gpn_InternetGatewayDevice_v2.xml" <SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<cwmp:ID SOAP-ENV:mustUnderstand="1">1</cwmp:ID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<cwmp:GetParameterNamesResponse>
<ParameterList xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cwmp:ParameterInfoStruct[6570]">
<ParameterInfoStruct>
<Name>InternetGatewayDevice.WANDeviceNumberOfEntries</Name>
<Writable>0</Writable>
</ParameterInfoStruct>
<ParameterInfoStruct>
<Name>InternetGatewayDevice.WANDevice.</Name>
<Writable>0</Writable>
</ParameterInfoStruct>
<ParameterInfoStruct>
</cwmp:GetParameterNamesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
'''
import xmltodict #将xml中的数据读入内存并整个转换成一个字典,放入doc
with open(r"D:\three_test\gpn_InternetGatewayDevice_v2.xml") as fd:
doc = xmltodict.parse(fd.read()) #取字典中的数据也很简单,按照xml文件中的格式依次往下即可
#e.g:取结点属性
print(doc["SOAP-ENV:Envelope"]["SOAP-ENV:Header"]["cwmp:ID"]['@SOAP-ENV:mustUnderstand']) #1
print(doc['SOAP-ENV:Envelope']['SOAP-ENV:Body']['cwmp:GetParameterNamesResponse']['ParameterList']['@xsi:type']) #SOAP-ENC:Array
#e.g.取结点值
print(doc["SOAP-ENV:Envelope"]["SOAP-ENV:Header"]["cwmp:ID"]['#text']) #1
print(doc['SOAP-ENV:Envelope']['SOAP-ENV:Body']['cwmp:GetParameterNamesResponse']['ParameterList']['ParameterInfoStruct'][0]['Name']) #InternetGatewayDevice.WANDeviceNumberOfEntries #e.g.如果是multiobject,将返回一个列表,列表中每一个元素都是一个对象OrderedDict([('Name', 'XXX'), ('Writable', 'X')])
list = doc["SOAP-ENV:Envelope"]["SOAP-ENV:Body"]["cwmp:GetParameterNamesResponse"]["ParameterList"]["ParameterInfoStruct"]
#遍历列表中的每一个子字典,i为列表下标
for i,obj in enumerate(list):
print(obj['Name'])
print(obj['Writable'])
break; #加入下面这两条指令,代码运行到此处就相当于打了一个断点,这中方式确定下路径是否正确效率更高。
import pdb
pdb.set_trace()

python->解析xml文件的更多相关文章

  1. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  2. python 解析xml 文件: DOM 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  3. python 解析xml 文件: SAX方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  4. 遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  5. Python 解析 XML 文件生成 HTML

    XML文件result.xml,内容如下: <ccm> <metric> <complexity>1</complexity> <unit> ...

  6. 【TensorFlow】Python解析xml文件

    最近在项目中使用TensorFlow训练目标检测模型,在制作自己的数据集时使用了labelimg软件对图片进行标注,产生了VOC格式的数据,但标注生成的xml文件标签值难免会产生个别错误造成程序无法跑 ...

  7. Python解析xml文件遇到的编码解析的问题

    使用python对xml文件进行解析的时候,假设xml文件的头文件是utf-8格式的编码,那么解析是ok的,但假设是其它格式将会出现例如以下异常: xml.parsers.expat.ExpatErr ...

  8. [转载] python 解析xml 文件: SAX方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  9. python解析xml文件时使用ElementTree和cElementTree的不同点;iter

    在python中,解析xml文件时,会选用ElementTree或者cElementTree,那么两者有什么不同呢? 1.cElementTree速度上要比ElementTree快,比较cElemen ...

  10. python 解析 XML文件

    如下使用xml.etree.ElementTree模块来解析XML文件.ElementTree模块中提供了两个类用来完成这个目的: ElementTree表示整个XML文件(一个树形结构) Eleme ...

随机推荐

  1. 并行排序ShearSort ---[MPI , c++]

    思想: (1) 对于一个nxm的数组,使用N个work进行处理. (2) 先按行对数组进行升序和降序排序[由左至右],一般奇数序列work升序,偶数序号的work进行降序 (3)再按列对数组进行升序排 ...

  2. Ubuntu apt-get彻底卸载软件包【转】

    原文地址:https://blog.csdn.net/get_set/article/details/51276609 最近对ubuntu卸载参数的详细程度了解不够:转载已了解查用. 如果你关注搜索到 ...

  3. 安装Docker,Asp.net core

    升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署 Docker从入门到实践 一.安装Docker a).设置Docker仓库 1.按惯例,首先更新Ubuntu的包索引 ...

  4. 对于 url encode decode js 和 c# 有差异

    在js对一个值进行解码使用:decodeURIComponent,编码使用:encodeURIComponent

  5. ScreenToGif 使用教程

    ScreenToGif 使用教程 ScreenToGif 是个强大的 Gif 录制/剪辑工具.其使用指南译文如下: 第一部分:录制 第二部分:编辑器 第三部分:主页.播放 第四部分:编辑.图像.过渡. ...

  6. IOS开发中一些受用的编码和调试方法积累

    1.## 与 @# 在宏里面该怎样使用 ##的使用, 首先我们添加一个宏 #define LRWeakSelf(type) __weak typeof(type) weak##type = type; ...

  7. C# yield return; yield break;

    using System; using System.Collections; namespace YieldDemo { class Program { public static IEnumera ...

  8. PhpStorm连接Docker容器配置xdebug断点调试

    本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...

  9. ssh连接服务器失败解决记录

    故障:db2inst1用户无法通过ssh连接数据库服务器. 但是root用户可以连接,连接后su – db2inst1用户报错: su: cannot set user id: Resource te ...

  10. MyBatis Plus:No qualifying bean of type 'com.baomidou.mybatisplus.mapper.BaseMapper<?>' available: expected single matching bean but found 4

    场景: 应用MyBatis Plus 和通用Mapper 继承自ServiceImpl实现对Service里的方法进行包装再处理. public interface IServiceBase2< ...