Python提供了多种方法来解析XML文件,其中常用的方法有两种:DOM和SAX。
-
使用DOM方法解析XML:DOM方法将整个XML文档加载到内存中,并构建一个树状结构,可以通过节点对象的属性、方法来访问和修改XML文件的内容。
示例代码:
import xml.dom.minidom # 打开XML文件 dom = xml.dom.minidom.parse('example.xml') # 获取根节点 root = dom.documentElement # 获取子节点 elements = root.getElementsByTagName('element') # 遍历子节点 for element in elements: # 获取节点属性 attr = element.getAttribute('attr') print(attr) # 获取节点文本内容 text = element.firstChild.data print(text)
-
使用SAX方法解析XML:SAX方法是一种事件驱动的解析方式,通过定义事件处理器,逐行解析XML文件,当解析器遇到开始标签、结束标签、字符数据等事件时,触发相应的事件处理方法。
示例代码:
import xml.sax # 定义事件处理器 class MyHandler(xml.sax.ContentHandler): def startElement(self, name, attrs): # 开始标签事件处理方法 print("Start element:", name) def endElement(self, name): # 结束标签事件处理方法 print("End element:", name) def characters(self, content): # 字符数据事件处理方法 print("Content:", content) # 创建解析器 parser = xml.sax.make_parser() # 设置事件处理器 handler = MyHandler() parser.setContentHandler(handler) # 解析XML文件 parser.parse('example.xml')
以上是两种常用的解析XML的方法,选择适合自己需求的方法进行使用。