したがって、ドキュメントにはNodeクラスのノードタイプのリストがあることに気付きましたが、ざっと見てみるnodeType
と、特定のNodeオブジェクトで使用可能なのリストをプログラムで取得する方法を見つけることができないようです(クラスを検査する以外に) 、「NODE」で終わる名前を持つすべての大文字のメンバーをすべてプルしてから、値で並べ替えます)。これを行う方法はありますか?
質問する
1525 次
1 に答える
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)
ハッキーなのであまり好きではありませんが、プログラムの実行中に少なくとも1回インポートされる限り、新しいメソッドを取得します。
于 2012-06-21T14:13:31.513 に答える