Python之xml解析
来源:互联网 发布:网络语233333什么意思 编辑:程序博客网 时间:2024/05/18 13:44
expat库
特点
- 1 支持动态解析xml,意味着expat不一定需要完整的xml也可以进行工作。
应用
- 1 利用expat的动态解析特点来分解大块的xml数据。
举例
import xml.parsers.expatdef check_attr(attrs, check, where): for data in check: if not data in attrs: print("Missing %s attribute [%s] at %u" % (data, attrs, where)) return False return Trueclass expatParser(object): def __init__(self, xmlRaw): #定义Expat解析器 self.parser = xml.parsers.expat.ParserCreate() #expat解析器遇到xml开始元素、元素值和结束元素分别调用startElement,charData,endElement self.parser.StartElementHandler = self.startElement self.parser.EndElementHandler = self.endElement self.parser.CharacterDataHandler = self.charData self.parser.ParseFile(xmlRaw) print() #name:节点名称 attrs:节点属性(字典) def startElement(self, name, attrs): print("start : " + name) if check_attr(attrs, ['name'], 0): print("name : {0}".format(attrs["name"])) if check_attr(attrs, ['value'], 0): print("value : {0}".format(attrs["value"])) def endElement(self, name): print("end : " + name) def charData(self, data): print("Data : {0}".format(data))f = open("expatParserTest.xml", 'rb')test = expatParser(f)f.close()
<enum name="MAV_CMD"> <entry name="MAV_CMD_DO_GRIPPER" value="211"> <description>Mission command to operate EPM gripper</description> <param value="1">gripper number (a number from 1 to max number of grippers on the vehicle)</param> <param value="2">gripper action (0=release, 1=grab. See GRIPPER_ACTIONS enum)</param> <param value="3">Empty</param> <param value="4">Empty</param> <param value="5">Empty</param> <param value="6">Empty</param> <param value="7">Empty</param> </entry></enum>
阅读全文
0 0
- Python之解析XML
- Python之xml解析
- python解析xml之lxml
- Python XML解析之DOM
- Python XML解析之SAX
- Python与xml之解析篇
- Python与xml之解析篇
- Python之使用ElementTree解析xml文件
- Python编程基础之十七XML解析
- Python学习之解析xml文件
- [代码笔记] python 之xml解析_dom
- python之解析最简单的xml
- python学习之 -- xml.etree.ElementTree解析xml
- python 解析XML xml.dom
- python 解析XML xml.dom
- python 解析XML xml.dom
- python解析xml(创建xml)
- python 解析XML xml.dom
- C++动态库与静态库
- 堆和栈的区别
- RIP和OSPF详解与对比
- Java JNI开发
- 快速排序
- Python之xml解析
- 插入排序
- 彻底的卸载干净oracle 11g
- java中的fail-fast(快速失败)机制
- 【JAVA_SE学习笔记】Scanner类
- T1 fibonacci
- Eclipse自动补全设置与Eclipse源代码下载
- 线程间间隔打印处理
- 代码1 爬取 百度logo(图片)