Python3将xml文件解析为Python对象
一、说明
从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementById(),这是智障吗?----所以我不喜欢beautiful soup(当然还因为他不支持xpath)。
python的json标准库可以将json结果直接解析为python对象;python也提供了好几个标准库来解析xml,但我不是很明白为什么都是一些不能直接将xml解析为python对象的垃圾库。
给一堆函数就叫功能强大吗,这次用了下次又得重新学简直脑残。
类似json将xml解析为python对象,可以使用第三方库untangle或xmltodict实现。
将以下内容保存为xml2obj.xml,后我我们就使用该文件。
<?xml version="1.0"?>
<root><title>xml to python obj</title><body><section id="1">section1 content</section><section id="2">section2 content</section></body>
</root>
二、使用untangle将xml文件解析为python对象
pip install untangle
代码如下:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import untangle# 将文件解析成对象
obj = untangle.parse('xml2obj.xml')# 获取<title>标签内容
obj.root.title.__dict__['cdata']# 获取第一个section标签
obj.root.body.section[0]# 获取第二个section标签的id
obj.root.body.section[1]['id']
运行如下:
三、使用xmltodict将xml文件解析为python对象
pip install xmltodict
代码如下:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import xmltodict# 将xml文件解析成对象
with open('xml2obj.xml') as fd:dict = xmltodict.parse(fd.read())# 获取<title>标签内容
dict['root']['title']# 获取第一个section标签
dict['root']['body']['section'][0]# 获取第二个section标签的id
dict['root']['body']['section'][1]['@id']
运行如下:
Python3将xml文件解析为Python对象相关推荐
- 【VOC格式xml文件解析】——Python
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/4/26 12:49 # @Author : @linlianqin # @S ...
- XML文件解析--Python
目录 一.对xml的解析及其函数 Element对象有以下常用属性: 二.xml文件 三.python解析 四.示例图 源码: 一.对xml的解析及其函数 官方手册 XML 指可扩展标记语言XML 被 ...
- Android开发历程_18(XML文件解析)
前言 本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML ...
- XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML
XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...
- XML - XML学习/XML文件解析器(C++)实现
XML - XML学习/XML文件解析器(C++)实现 XML概述 XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识.它也是元标记语言,用于定义其他与特定领域有关的, ...
- android基础知识13:AndroidManifest.xml文件解析【转载】
注:本文转载于:http://blog.csdn.NET/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- PHP 将xml文件解析为数组
SimpleXML扩展在解析和操作XML文档时非常实用,本文将讨论如何使用php SimpleXML解析xml文件. 首先,让我们看一下使用SimpleXML扩展将XML内容转换为数组所需遵循的步骤. ...
- XML文件解析 (下载)
XML文件解析 (下载) main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
- (十一)XML 文件解析以及工具实现(详解)
XML 文件解析详解以及工具实现 文章目录 XML 文件解析详解以及工具实现 前言 解析 XML 文档 XML 解析器与 W3C XML 的层次结构 XML 解析工具化 工具化分析 本地块与静态本地块 ...
最新文章
- 反汇编的应用1-软件破解
- 深入浅出: Java回调机制(异步)
- 【攻防】Kubelet访问控制机制与提权方法研究
- javaScript之数组Array
- [读书笔记]鸟哥的LINUX私房菜 十三章 shell scripts
- 转:在RHEL5系统中搭建iSCSI存储服务器
- 计算机如何查找目标,如何使用命令行查找计算机地理位置? | MOS86
- 【To Understand! 回文串6 KMP算法】LeetCode 214. Shortest Palindrome
- OpenGL学习笔记一
- Mybatis 中事务提交方式
- 网易互娱游戏研发工程师笔试
- android 密码输入框 星号,input密码框输入后设置显示为星号或其他样式
- NVIDIA GeForce 800系列详细配置参数
- kibana报表展示
- html5 audio duration,记一次vue中获取audio媒体总时长duration遇到的问题
- 硬件/操作系统/网络(九):了解常见linux服务器硬件配置
- 用友u9一些常用sql分享
- 【矩阵篇】九宫图/n宫图生成——Merzirac法生成奇阶幻方 Python实现
- 餐饮行业如何做好微营销
- 职场工作细节提升建议
热门文章
- 《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——2.15 本章小结...
- linux虚拟机网络设置(本机使用公司内网)
- uestc 1073 秋实大哥与线段树 Label:线段树
- 并发学习笔记 (5)
- JS日期加减,日期运算
- Asp.net Web.Config - 配置元素 httpCookies
- VMware View 5万点虚拟桌面项目案例详析
- ORA-12154:TNS:无法解析指定的连接标识符
- Amazon运营如何做?Amazon运营需做好全局的加减法
- IT人员健康信号之舌苔