Python小结 - 访问XML

    xiaoxiao2021-03-25  155

    

    常见的XML编程接口有DOM和SAX。在Python中,有三种方法解析XML:SAX、DOM和ElementTree (Python 3)。

    SAX (simple API for XML ) python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。

    DOM(Document Object Model) 将XML数据在内存中解析成一个树,通过对树的操作来操作XML。

    ElementTree(元素树) ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。

    下面代码仅演示Python 2.7.*里通过DOM来操作XML。

    首先是XML片段:

    <?xml version="1.0" encoding="UTF-8"?> <collection shelf="Arthur's Collection"> <drama title="24"> <type>War, Thriller</type> <format>DVD</format> <year>2003</year> <rating>PG</rating> <stars>10</stars> <description>About counter terrorist unit</description> </drama>

    原理很简单:导入包,解析树(整个导入),获得句柄,再操作。

    import xml.dom.minidom DOMTree = xml.dom.minidom.parse("TVDramas.xml") cc = DOMTree.documentElement

    操作也超简单:

    dramas = cc.getElementsByTagName("drama") for drama in dramas: print "*****DRAMA*****" if drama.hasAttribute("title"): print "Title: %s" % drama.getAttribute("title") type = drama.getElementsByTagName('type')[0] print "Type: %s" % type.childNodes[0].data

    句柄 getElementsByTagName,里面一个个地处理。

    转载请注明原文地址: https://ju.6miu.com/read-1480.html

    最新回复(0)