TinyXML生成xml文件

聲明:歡迎任何人和組織轉載本blog中文章,但必須標記文章原始鏈接和作者信息。

本文鏈接:http://blog.csdn.net/li_007/archive/2009/03/31/4038989.aspx

開拓進取的小烏龜------->CSDN點滴點點滴滴Blog

前面簡單介紹了TinyXML,順便寫了一個簡單的例子來測試利用TinyXML生成xml文件,其實代碼實現很簡單。如下:

運行後利用IE 8.0打開截圖如下:

Simple XML

好了,看後就知道很簡單的,這也是我選擇它的一個原因,但這裏做很簡單的測試,沒有對xml進行驗證代碼實現,但是TinyXML自己帶的test Application中有對xml進行驗證的函數,大家有興趣可以去看。

代碼很簡單不囉嗦,說點別的,仔細看看代碼,其中使用了很多new來建立了對象指針,但是隻看到一個delete,也許你會說着會引起內存泄漏,其實在上面的函數中,後面的delete也可以不要,並且還不會造成內存泄漏。原因看看TinyXML實現的源碼中TiXmlNode的析構函數的實現代碼如下:當然順便注意下所有的類的虛擬構造函數。

在結合一下前面文章介紹TinyXML的繼承圖表就清楚了爲什麼這兒不需要我們手動釋放堆棧了,特別是不需要一個一個地釋放,只需要最後釋放最高節點就可以,比如TiXmlDocument節點。。。。。。在我實現的函數中其實也可以不需要delete xmlDocs這句的,因爲他們都是局部變量,當變量的作用域結束的時候,會自動釋放。當然使用delete會觸發相應的class的析構函數的調用,這些都是C++的實現機制,在次不多說。

BTW:正是由於上面的原理,我們添加到TinyXML中的節點。。。都必須是動態用new來創建的。如果創建的不是指針,在內存釋放的時候會出現錯誤的,這個可以自己去測試。我想TinyXML這樣實現是因爲TInyXML實現機制的要求,因爲它是基於DOM,所有的節點都是在內存中。

<script src="http://s.vdoing.com/u/107/54977.js" type="text/javascript"></script>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章