pythonxml解析dom_解析XML:DOM
在之前所写的解析XML:ElementTree一文中,我是用Python标准库里的xml.etree.ElementTree来实现的。不过这种对于含有命名空间的XML则显得不大方便和直观。其实Python标准库里还提供了更简单的方法,那就是利用The Document Object Model API,即xml.dom。这种方法通过检索DOM树实现。还是以之前的XML文档为例:0131121153
在之前所写的解析XML:ElementTree一文中,我是用Python标准库里的xml.etree.ElementTree来实现的。不过这种对于含有命名空间的XML则显得不大方便和直观。其实Python标准库里还提供了更简单的方法,那就是利用The Document Object Model API,即xml.dom。这种方法通过检索DOM树实现。还是以之前的XML文档为例:<?xml version="1.0" encoding="utf-8"?>
0
1311211532361125903
提交成功
0
首先将其解析到内存中:>>> import xml.dom.minidom
>>> dom = xml.dom.minidom.parseString(xml)
>>> dom
接下来就可以采用类似JavaScript里DOM树的操作方法来找到我们想要的节点,例如获取“0”:>>> nodes = dom.getElementsByTagName('State')
>>> nodes
[]
然后遍历该节点内的节点找到所需的文本内容(这里节点内仅包含一个文本子节点):>>> text = ''
>>> for node in nodes[0].childNodes:
if node.nodeType == xml.dom.minidom.Node.TEXT_NODE:
text += node.data
>>> text
u'0'
这种方法方便而易于理解,不过如果DOM树很大,那性能可能相对较低。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)