我目前正在将一些 Python 代码从 DOM“移植”到
lxml.etree
,并且遇到了一个障碍:有问题的 DOM 代码使用 Node.setUserData()
和 Node.getUserData
API,但我在lxml API 文档。
在最后的努力中,我尝试对
lxml.etree.Element
对象进行猴子修补,但这会引发 AttributeError
:
setattr(element, '_userdata', {})
AttributeError: 'lxml.etree._Element' object has no attribute '_userdata'
我是否在这里遗漏了一些东西,或者我是否坚持重组代码以完全不同的方式处理“用户数据”?
lxml没有这个功能。我最终破解了一个重写 ElementBase 的类并将用户数据存储为处理指令。泡菜是你的朋友。