繁体   English   中英

克隆libxml2文件

[英]Clone libxml2 document

在libxml2中克隆解析的XML文档内存表示的最佳方法是什么?

“克隆”是指深度克隆,一种独立的数据结构,代表与原始数据相同的数据。 “最佳方式”是指实现复杂性和性能开销之间的合理折衷。 因此,例如,序列化和重新解析将是几行代码,但会产生不必要的解析开销。 另一方面,由于所有案例的区别,手动克隆每个数据结构的每个成员可能会导致数百行代码。

我现在最好的选择似乎是xmlDOMWrapCloneNode函数 但一方面,其预期目的是克隆单个节点,因此需要特别小心地构建兼容文档并使用它来接收克隆。 另一方面,如果必须克隆整个文档,那么一些复杂性可能是可以避免的。 然而,查看代码说明了这里涉及的复杂性。 复制和调整所有代码似乎太过分了。

您可能正在寻找xmlCopyDoc

 xmlDocPtr xmlCopyDoc (xmlDocPtr doc, int recursive) 

做一份文件信息。 如果是递归的,内容树也将被复制,DTD,名称空间和实体也将被复制。

doc:文件
递归:如果不为零则执行递归复制。
返回:新的#xmlDocPtr,如果出错,则返回 NULL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM