@sevenup233
2018-12-23T12:35:06.000000Z
字数 988
阅读 504
xml
Excel处理XML挺方便的
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432002075057b594f70ecb58445da6ef6071aca880af000
http://www.runoob.com/python/python-xml.html
操作XML有三种方法:DOM,SAX,ElementTree
DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。
SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。
ElementTree就像一个轻量级的DOM,具有方便友好的API
文档:https://docs.python.org/3/library/xml.sax.html
利用SAX解析XML文档牵涉到两个部分: 解析器,事件处理器。
import xml.sax
#方法
#创建一个新的解析器对象并返回,parser_list - 可选参数,解析器列表
xml.sax.make_parser( [parser_list] )
#解析
parse()
#解析到标签开头、内容、结尾时的事件
parser.StartElementHandler
parser.EndElementHandler
parser.CharacterDataHandler
需要自己写处理方法,
文档:https://docs.python.org/3/library/xml.dom.html
一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。
import xml.dom
# 使用minidom解析器打开 XML 文档
DOMTree = xml.dom.minidom.parse("test.xml")
collection = DOMTree.documentElement
#方法
#含有元素
hasAttribute()
#获取元素
getAttribute()
#获取标签内容
getElementsByTagName()
API丰富,方便很多