我知道如何在python中使用sax解析xml,但是如何在我正在解析的文档中插入元素呢?我是否必须创建单独的文件?
有人可以提供一个简单的例子或改变我下面的例子。感谢。
from xml.sax.handler import ContentHandler
from xml.sax import make_parser
import sys
class aHandler(ContentHandler):
def startElement(self, name, attrs):
print "<",name,">"
def characters(self, content):
print content
def endElement(self,name):
print "</",name,">"
handler = aHandler()
saxparser = make_parser()
saxparser.setContentHandler(handler)
datasource = open("settings.xml","r")
saxparser.parse(datasource)
<?xml version="1.0"?>
<names>
<name>
<first>First1</first>
<second>Second1</second>
</name>
<name>
<first>First2</first>
<second>Second2</second>
</name>
<name>
<first>First3</first>
<second>Second3</second>
</name>
</names>
答案 0 :(得分:0)
使用DOM,您可以在内存中拥有整个xml结构 使用SAX,您没有可用的DOM,因此您没有任何要附加元素的内容。
使用SAX的主要原因是如果xml结构真的非常庞大 - 如果将DOM放入内存中会造成严重的性能损失。如果不是这种情况(因为它似乎来自您的小样本xml文件),我将始终使用DOM与SAX。
如果你走DOM路线(这似乎是我的唯一选择),请查看lxml。它是最好的python xml库之一。