[关闭]
@sevenup233 2018-12-23T12:35:06.000000Z 字数 988 阅读 504

XML 02

xml

错觉

Excel处理XML挺方便的

XML与Python

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

SAX

文档:https://docs.python.org/3/library/xml.sax.html
利用SAX解析XML文档牵涉到两个部分: 解析器,事件处理器。

  1. import xml.sax
  2. #方法
  3. #创建一个新的解析器对象并返回,parser_list - 可选参数,解析器列表
  4. xml.sax.make_parser( [parser_list] )
  5. #解析
  6. parse()
  7. #解析到标签开头、内容、结尾时的事件
  8. parser.StartElementHandler
  9. parser.EndElementHandler
  10. parser.CharacterDataHandler

需要自己写处理方法,

DOM

文档:https://docs.python.org/3/library/xml.dom.html
一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。

  1. import xml.dom
  2. # 使用minidom解析器打开 XML 文档
  3. DOMTree = xml.dom.minidom.parse("test.xml")
  4. collection = DOMTree.documentElement
  5. #方法
  6. #含有元素
  7. hasAttribute()
  8. #获取元素
  9. getAttribute()
  10. #获取标签内容
  11. getElementsByTagName()

API丰富,方便很多

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注