我想使用libxml2或gdome API将一些私有数据(void *)挂在DOM树中的节点之外。通过(相当稀疏)的api文档来看,似乎libxml2节点可能有一个用户数据成员(_private,几乎在每个对象上),但我没有看到任何api调用来操纵它。如何将私有数据附加到libxml2或gdome dom树
1
A
回答
1
由于xmlNode是一个结构,您可以直接访问void* _private
成员。
xmlNode * ePtr = ...;
ePtr->_private = ...;
但我找不到任何文档说该字段是用于自定义用户数据。所以我会避免这种做法。
相反,我会使用一个单独的元数据存储,像std::map<xmlNode*, void*>
会做。 (我会使用一些比void*
更安全的类型,但希望你能明白)
我看到的最大问题(在这两种情况下)都是你需要小心元数据的生命周期关联。我看不出有什么办法可以通知一个节点的销毁......这可能会导致各种麻烦。
0
文档说对于用户数据的libxml不会去碰它约_private
,但我的记忆是,它意味着对于像libxml2的语言绑定(如xmlwrapp将它用于这个目的),而不是为用户代码。
相关问题
- 1. 如何将“元数据”附加到DOM节点?
- 2. 将数据附加到带有DOM文档的xml文件
- 3. 附加到DOM
- 4. robert.hooke;或如何将元数据附加到Clojure中的函数
- 5. 如何将数据库附加到树视图作为数据源?
- 6. 如何私人数据附加到Android的Google日历事件
- 7. 如何将附加数据添加到mule有效载荷?
- 8. 将数据附加到dropzone
- 9. 将大型元素/数据集附加到dom的性能
- 10. 如何将UIImage或CGImage附加到AVAssetWriter?
- 11. 如何将RSS数据附加到现有的RSS XML文件?
- 12. 如何将脚本和数据附加到现有网站?
- 13. 如何将描述附加到Zend_Form_Element?
- 14. 如何将预取数据附加到数据表的tbody中
- 15. 如何将数据库值附加到JSON数据
- 16. 如何将数据附加到SWT/Java中的TreeItem?
- 17. 将附加数据添加到WinForms ListViewItem
- 18. React不附加DOM到HTML
- 19. 如何将DOM元素附加到JavaScript中的空元素中?
- 20. 如何将Pace.js附加到DOM中的自定义位置?
- 21. 如何将DOM对象附加到div(propertyeditor)
- 22. 如何避免在循环中将元素附加到DOM
- 23. 将数据添加到DOM与纯JS
- 24. 将数据或数组索引附加到锚标记
- 25. 将附加数据附加到PHP中的数组中
- 26. 如何将附加数据添加到Django消息中?
- 27. 没有输出到DOM树
- 28. 如何根据属性将数据附加到div?
- 29. 将一个DOM对象的节点附加到另一个DOM
- 30. jQuery附加DOM
我认为添加用户数据包含在DOM级别3中,gdome是级别2.也许您可以使用DOM级别3库(如xerces)?然后userdata是可能的,并且该库可以处理数据的生命周期。 – rve 2011-05-20 06:02:14