一千萬個為什麽

搜索

python xml.dom.minidom.Attr問題

在Python中使用minidom獲取屬性,使用“attributes”屬性。例如<�代碼> node.attributes [ “ID”]。值</代碼>

所以如果我有 ,那應該給我“foo”node.attributes [“id”] 不返回named屬性的值,而是返回 xml.dom.minidom.Attr 實例。 但是看一下 Attr 的幫助,通過 help('xml.dom.minidom.Attr'),這個神奇的“value”無處不在提到的財產。我喜歡通過查看類型層次結構,實例方法等來學習API。這個“value”屬性來自哪裏?為什麽它沒有列在 Attr 類'頁面中?提到的唯一數據描述符是 isIdlocalNameschemaType 。它也不是從任何超類繼承的。由於我是Python的新手,一些Python大師會啟發嗎?

最佳答案

minidom 只是 xml.dom 接口的實現,因此任何專門針對minidom的文檔都只是關於它的特性或限制wrt < code> xml.dom 本身。

xml.dom docs “nofollow noreferrer”> Attr 說,我引用:

Attr繼承自Node,所以繼承   它的所有屬性。

Node 實際上以不同的方式命名屬性: nodeValue 。但是,確實......:

>>> import xml.dom.minidom as xdm
>>> dom = xdm.parseString('')
>>> root = dom.documentElement
>>> atr = root.getAttributeNode('bar')
>>> atr.nodeValue
u'baz'

記錄的 nodeValue 屬性具有_un_documented別名的事實可能被認為是不幸的,但您可以始終堅持記錄,因此可以說正確,屬性名稱, nodeValue 。是的,它很冗長,但是所有 minidom 都是如此,並且比優秀的 xml.etree.ElementTree (特別是在後者的C實現中, xml.etree.cElementTree ),所以如果你選擇使用 minidom ,那一定是因為你喜歡廣泛的冗長...... ;-)。

轉載註明原文: python xml.dom.minidom.Attr問題