Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过lxml.sax接口传递自定义属性?_Python_Python 3.x_Lxml_Sax - Fatal编程技术网

Python 如何通过lxml.sax接口传递自定义属性?

Python 如何通过lxml.sax接口传递自定义属性?,python,python-3.x,lxml,sax,Python,Python 3.x,Lxml,Sax,我正在使用lxml.sax修改XML文档,我想将自定义属性传递给startelements方法。我的初始代码是: from lxml import sax class MyContentHandler(sax.ElementTreeContentHandler): def startElementNS(self, ns_name, qname, attributes): if qname == 'text': # the troublesome

我正在使用
lxml.sax
修改XML文档,我想将自定义属性传递给
startelements
方法。我的初始代码是:

from lxml import sax

class MyContentHandler(sax.ElementTreeContentHandler):
    def startElementNS(self, ns_name, qname, attributes):
        if qname == 'text':
            # the troublesome line
            super().startElementNS((None, 'div'), 'div', {'class':'page'})
        super().startElementNS(ns_name, qname, attributes)
但是,如上所述,
attributes
参数必须是
attributes
对象,而不是常规字典。调试显示,确切的类型是
sax.xmlreader.AttributesNSImpl
,但是这个类没有正式的文档记录,我似乎无法直接实例化它


是否有任何(官方或黑客)方法可以为
startelements
方法提供我自己的属性?

经过几天的反复试验,发现
startelements
函数确实接受常规Python字典,但密钥必须是
(uri,localname)

super().startElementNS((None, 'div'), 'div', {(None, 'class'):'page'})