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
屬性,但我有一個「只讀」異常。 添加鍵/值不起作用(如文檔中所述)。
我也試過,但沒有成功
etree.register_namespace('va', 'http://xbrl.org/2008/variable')