如何将私有数据附加到libxml2或gdome dom树

|| 我想使用libxml2或gdome API在DOM树中的节点上悬挂一些私有数据(void *)。查看(相当稀疏的)api文档,似乎libxml2节点可能具有用户数据的成员(_private,几乎在每个对象上),但是我没有看到任何用于处理此问题的api调用。     
已邀请:
由于xmlNode是一个结构,因此您可以直接访问
void* _private
成员。
xmlNode * ePtr = ...;
ePtr->_private = ...;
但是我找不到任何文档说明该字段用于自定义用户数据。所以我会避免这种方法。 取而代之的是,我将使用单独的元数据存储,例如
std::map<xmlNode*, void*>
。 (我会使用比
void*
更类型安全的内容,但希望您能理解这个想法) 在两种情况下,我看到的最大问题是,您需要注意关联的元数据的生命周期。我看不到任何有关节点破坏的通知...这可能导致各种麻烦。     
该文档说,对于用户数据,libxml不会涉及
_private
,但是我的回忆是它是用于libxml2语言绑定之类的东西(例如xmlwrapp用于此目的),而不是用于用户代码。     

要回复问题请先登录注册