在python中使用SAX追加元素

时间:2010-10-15 22:56:55

标签: python xml sax

我知道如何在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>

1 个答案:

答案 0 :(得分:0)

使用DOM,您可以在内存中拥有整个xml结构 使用SAX,您没有可用的DOM,因此您没有任何要附加元素的内容。

使用SAX的主要原因是如果xml结构真的非常庞大 - 如果将DOM放入内存中会造成严重的性能损失。如果不是这种情况(因为它似乎来自您的小样本xml文件),我将始终使用DOM与SAX。

如果你走DOM路线(这似乎是我的唯一选择),请查看lxml。它是最好的python xml库之一。