2017-04-10 5 views
0

lxml.saxを使用してXMLドキュメントを変更しています。カスタム属性をstartElementNSメソッドに渡したいと思います。私の最初のコードはこれです:lxml.saxインターフェイスを使用してカスタム属性を渡すにはどうすればよいですか?

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) 

しかし、documentationノートとして、attributesパラメータがAttributesオブジェクトではなく、通常の辞書にする必要があります。デバッグでは、正確なタイプがsax.xmlreader.AttributesNSImplであることが明らかになりましたが、このクラスは正式には文書化されておらず、直接インスタンス化できないようです。

startElementNSメソッドに独自の属性を指定する方法はありますか。試行錯誤のより

答えて

0

数日はstartElementNS機能は、通常のPythonの辞書を受け入れるんが、キーは(uri, localname)ペアなければならないこと。明らかになっています

super().startElementNS((None, 'div'), 'div', {(None, 'class'):'page'}) 
関連する問題