所以我意识到文档中有Node类的节点类型列表,但是从一开始,我似乎无法找到一种方法以编程方式获取给定的nodeType
列表节点对象(没有检查类,拉动每个所有大写成员的名称以'NODE'结尾,然后按值排序)。有没有办法做到这一点?
答案 0 :(得分:1)
我希望有更好的东西,但缺乏这一点,我创建了一个新模块:
from xml.dom import Node
from collections import OrderedDict
if not hasattr(Node, 'get_all_node_types'):
@classmethod
def get_all_node_types(cls, refresh=False):
if not hasattr(cls, '_type_dict') or refresh:
unsorted_types = {getattr(cls, name) : name for name in dir(cls) if name.endswith('_NODE')}
cls._type_dict = OrderedDict(sorted(unsorted_types.items(), key = lambda t : t[0]))
return cls._type_dict
setattr(Node, 'get_all_node_types', get_all_node_types)
这很hacky,所以我不喜欢它,但只要在程序执行期间至少导入一次,我就会得到我的新方法。