用python写SAX代码
时间: 2023-06-08 11:07:58 浏览: 95
好的,这是一个简单的Python SAX代码示例:
```python
import xml.sax
class MyHandler(xml.sax.ContentHandler):
def __init__(self):
self.CurrentData = ""
self.name = ""
self.age = ""
# 元素开始事件处理
def startElement(self, tag, attributes):
self.CurrentData = tag
if tag == "person":
print("***Person***")
name = attributes["name"]
print("Name:", name)
# 元素结束事件处理
def endElement(self, tag):
if self.CurrentData == "name":
print("Name:", self.name)
elif self.CurrentData == "age":
print("Age:", self.age)
self.CurrentData = ""
# 内容事件处理
def characters(self, content):
if self.CurrentData == "name":
self.name = content
elif self.CurrentData == "age":
self.age = content
if __name__ == "__main__":
# 创建一个 XMLReader
parser = xml.sax.make_parser()
# 关闭命名空间
parser.setFeature(xml.sax.handler.feature_namespaces, 0)
# 重写 ContextHandler
Handler = MyHandler()
parser.setContentHandler(Handler)
parser.parse("example.xml")
```
这个代码使用Python的SAX模块来解析XML文档,并输出文档中所有的person姓名和年龄。使用SAX模块可以避免读取过大的XML文件时占用太多内存。
阅读全文