3
lxmlのドキュメントから、私はカスタムXML要素がElementBase
から継承されるべきだと理解しています。lxml.ElementBaseから継承するオブジェクトの名前空間接頭辞をカスタマイズする方法
たとえば、私が作成することができ
class FactVariable(etree.ElementBase):
''' Class that represents a XBRL fact variable.'''
TAG = '{http://xbrl.org/2008/variable}factVariable'
@property
def label(self):
return self.attrib['{http://www.w3.org/1999/xlink}label']
@label.setter
def label(self, value):
self.attrib['{http://www.w3.org/1999/xlink}label'] = value
私の問題は、私はXMLのツリーや場所、そのようなノードを作成するとき、私は
<ns0:factVariable xmlns:ns0="http://xbrl.org/2008/variable" label="azerty"/>
が質問得ることです:私はに名前空間をしたいです接頭辞はva
ではなく、ns0
に変更できますか?
私はself.nsmap
プロパティを設定しようとしましたが、「読み取り専用」の例外があります。 キー/値を追加しても効果はありません(ドキュメントの説明どおり)。
また、私は、これは古く、おそらくこれを解決@rdsが、私は同様の問題に遭遇したので、私はソム情報を共有したいと思った知っている成功
etree.register_namespace('va', 'http://xbrl.org/2008/variable')