簡體   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