什么是xml(python数据分析:xml格式文件的常用解析,快速完成python的xml数据提取)
- 百科
- 2021-07-12
- 98热度
- 0评论
什么是xml
【粉丝福利】关注公众号,获取全套视频资料,xml.sax 通过解析器、事件处理器的方式对xml格式数据的进行解析。喜欢小编点个 '关注' 吧!
Python 集中营 基础巩固、进阶提升、编程技巧、实战总结,在 Python 的路上越走越宽! 122篇原创内容 --> 公众号 主要函数 1'''主要函数'''
2
3import xml.sax
4
5-- startDocument() : 启动文档时事件处理
6
7-- endDocument() : 结束文档时事件处理
8
9-- startElement(name, attrs): XML开始标签时处理,name是标签的名字,attrs是标签的属性值字典。
10
11-- endElement(name) : 遇到XML结束标签时调用,name是标签的名字。
12
13-- characters :处理内容
14
15-- make_parser : 创建解释器对象并返回
16
17-- parser : 解析
标签属性解析 1'''标签属性解析'''
2
3import xml.sax
4
5class ConfigHandler(xml.sax.ContentHandler):
6
7 def __init__(self):
8
9 self.tag = ""
10
11 self.name = ""
12
13 self.id = ""
14
15 def startDocument(self):
16
17 print("解析开始事件处理")
18
19 def startElement(self, name, attributes):
20
21 print("结束解析XML事件处理")
22
23 self.tag = name
24
25 if name == "hello":
26
27 self.name = attributes["name"]
28
29 self.id = attributes["id"]
30
31 print('name属性值:',self.name)
32
33 print('id属性值:',self.id)
34
35 def characters(self, content):
36
37 print("解析内容事件处理")
38
39 def endElement(self, name):
40
41 print("结束解析XML事件处理")
42
43 # xml结束标签调用
44
45 def endDocument(self):
46
47 print("解析结束事件处理")
48
49
50if __name__ == "__main__":
51
52 # 创建XML解析器
53
54 parser = xml.sax.make_parser()
55
56 # 设置解析器
57
58 parser.setFeature(xml.sax.handler.feature_namespaces, 0)
59
60 # 重写解析处理对象
61
62 Handler = ConfigHandler()
63
64 # 设置解析处理器
65
66 parser.setContentHandler(Handler)
67
68 # 开始解析
69
70 parser.parse("data1.xml")
标签内容解析 1'''标签内容解析'''
2
3import xml.sax
4
5class ConfigHandler(xml.sax.ContentHandler):
6
7 def __init__(self):
8
9 self.tag = ""
10
11 self.name = ""
12
13 self.label = ""
14
15 self.content = ""
16
17 def startDocument(self):
18
19 print("解析开始事件处理")
20
21 def startElement(self, name, attributes):
22
23 print("结束解析XML事件处理")
24
25 self.tag = name
26
27 if name == "type":
28
29 self.name = attributes["class"]
30
31 print(self.name)
32
33 if name == "score":
34
35 self.label = attributes["name"]
36
37 print(self.label)
38
39 def characters(self, content):
40
41 print("解析内容事件处理")
42
43 self.content = content
44
45 def endElement(self, name):
46
47 print("结束解析XML事件处理")
48
49 if name == "score":
50
51 print(self.content)
52
53 def endDocument(self):
54
55 print("解析结束事件处理")
56
57if __name__ == "__main__":
58
59 # 创建XML解析器
60
61 parser = xml.sax.make_parser()
62
63 # 设置解析器
64
65 parser.setFeature(xml.sax.handler.feature_namespaces, 0)
66
67 # 重写解析处理对象
68
69 Handler = ConfigHandler()
70
71 # 设置解析处理器
72
73 parser.setContentHandler(Handler)
74
75 # 开始解析
76
77 parser.parse("data2.xml")
扫码关注我们更多精彩等待你发现往期精选06月26日
● python自动化:用python做一个最简单的聊天机器人,给女朋友发送微信聊天对白【精选】
● python二进制字节流数据读取,bitstring查找、切片字节流处理超方便
● python数据结构:多线程数据处理,优先级队列--Queue
● 传说中的黑客都是破坏网络安全的不法分子吗?python语言为什么能成为黑客神器!【精选】
● python文件应用路径须谨慎,小细节往往出现大事故。程序员品质:不放过一处BUG!
● python移除List列表重复项的常见方式(建议收藏)!
● python如何快速构建出可视化地图,matplotlib可以编辑的世界地图!【精选】
● 普查结果:141178万人,python轻松制作全国第七次人口普查数据分布图、各地区人口数!
● pip自动安装python扩展库,解放码农劳动力,不同版本、不同项目统一安装配置,不用再为不同版本的不同依赖库而抓狂
● python虚拟环境的安装到底有什么意义,用最便捷的方法完成python虚拟环境的安装、配置!【精选】
● 日常校验要精准:Python字符串处理,字符串头尾匹配,内置函数匹配与正则匹配
● 解放双手、程序员不用写代码,快来体验一下?
● 程序员的朋友圈怎么能平平无奇,不用photoshop,几行python代码搞定九宫格朋友圈,快去分享吧!【精选】
● 无所不能的Python是这样实现文件的解压缩的,zipfile扩展库一行代码搞定文件解压缩!
创作不易,点赞、分享支持一下 ~