您的位置:免費論文網 > 計算機論文 > 目錄樹的XML文檔的自動生成 正文

目錄樹的XML文檔的自動生成

2017-09-01 10:13:12 來源網站:免費論文網創業好點子 本文移動端:目錄樹的XML文檔的自動生成
目錄樹的XML文檔的自動生成 本文關鍵詞:自動生成,文檔,目錄,XML
目錄樹的XML文檔的自動生成 本文簡介:1背景  目錄樹從根到各級子目錄項是一種有級別差隸屬關系的分支層次結構[1],有關文件管理和調用的許多應用都涉及目錄樹的查找和遍歷。在實際的應用程序開發過程中,經常會遇到如何查找某一文件以確定此文件的路徑問題,也會將通過目錄樹查找資源,如:圖片、文本等。  微軟提供了使用TreeView控件把數據按
目錄樹的XML文檔的自動生成 本文內容:

1 背景 

  目錄樹從根到各級子目錄項是一種有級別差隸屬關系的分支層次結構[1],有關文件管理和調用的許多應用都涉及目錄樹的查找和遍歷。在實際的應用程序開發過程中,經常會遇到如何查找某一文件以確定此文件的路徑問題,也會將通過目錄樹查找資源,如:圖片、文本等。 

  微軟提供了使用TreeView控件把數據按照樹形結構組織并顯示出來,很直觀的描述復雜的層次關系[2]。但是使用此控件描述出來的層次關系很難將其保存出來,每次都要運行程序依次獲取信息信息。為了提高程序的運行效率,需要將將目錄樹的信息存儲起來,方便在程序中必然要去獲取和使用這些信息。有人試著使用數據庫存儲此部分信息[3],但是據庫存儲不能夠跨平臺而且用戶在使用的時候需要安裝龐大的數據庫軟件和做一些比較繁瑣的配置,為大多數對數據庫不熟的用戶帶了不便。 

  Xml是可擴展標記語言[4],可以用它來描述事物的信息,且能夠完成的描述為樹形結構。同時,Xml文檔是跨平臺,并且使用不需要用戶安裝任何的軟件和配置任何的參數,通過XmlDocument類能夠直接對內部信息進行操作。本文提出了一種目錄樹的XML文檔的自動生成方法。將可以自動將文件目錄樹中的相關數據轉換成XML 數據文檔,轉化出來的XML文檔能夠詳細對文件信息進行描述方便在不同平臺下對數據進行處理。避免了手工編輯生成XML 數據文檔不能適應快速大量的數據交換要求。 

  2 文件目錄樹 

  Windows通過目錄樹的形式對文件和文件夾進行管理,如圖1所示。 

  結構清晰,便于理解和讀取。采用樹形目錄結構有如下優點:1)解決了重名問題,允許不同的用戶用相同的名字去命名文件;2)有利于文件的分類,可以把不同類型的文件登錄在不同的子目錄下,便于查找和管理;3)能提高搜索文件的速度,可以從當前目錄開始設置路徑(稱相對路徑),從而縮短搜索路徑,提高搜索速度;4)可防止用戶共享文件時破壞文件,對各級目錄或文件規定存取權限,凡能得到某級目錄權限的用戶就可得到該級目錄以及所屬的子目錄和文件,按規定的存取權限去使用目錄和文件,達到保護文件的目的。 

  XML是一種可擴展標記語言 (Extensible Markup Language,),用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。XML 提供統一的方法來描述和交換獨立于應用程序或供應商的結構化數據。并且在各種環境下都能夠提供了對XML操作的接口或類,如C#中提供XMLDocument操作xml文檔,C++中提供了---操作XML文檔,Java提供------操作XML文檔等。 

  3 基于C#的目錄樹的Xml描述文檔的自動生成 

  3.1 文檔的生成原理 

  對要生成xml文檔的目錄進行設定,設定完成后此目錄將是XML文檔的根節點。接著依次找當前目錄下的每一個實體(文件或是子目錄),生成上一級目錄節點對應的子節點;如果當前目錄中包含子目錄,則遞歸調用節點生成函數將其設定為上一級目錄節點對應的子節點,指導目錄將不包含子目錄了為止。這樣多個子節點生成函數,反復進行遞歸調用,就可以實現對整個目錄樹的XML序列化。

    3.2 具體實現 

  1)設置配置文件 

  Config文件能夠將命令行選項和配置文件選項統一到一種數據結構中。通過使用Config文件,能夠在外部設置項目中所用參數,而無須修改代碼去設置相關的數據,實現了配置選項和代碼分離。在本項目中,設置如圖2所示的Config文件,在此文件中完成了對要序列化的目錄樹、所生成的xml文件名、所保存的路徑等相關信息進行了設置。 

  2)定義xml節點信息 

  為了能夠將目錄和子目錄的詳細標注在xml文件中,定了xml節點的描述信息,通過類XmlNode來顯示,具體代碼如圖3所示。 

  3)xml文件的自動生成 

  根據所輸入要生成的序列化的目錄,寫一個遞歸遍歷方法完成序列化過程,并將序列化的結果寫入到xml文件中,算法的具體實現過程描述如下: 

  輸入:要序列化的目錄 

  輸出:根據目錄生成的xml文件 

  Step1:初始化相關信息(xml文件的保存路徑、名字;要被序列化的目錄的名字、路徑等); 

  Step2:判斷xml文件保存的路徑是否存在,如果存在則進行step3,否則跳轉step4; 

  Step3:則將原有的刪除,重新按照初始化信息生成保存路徑; 

  Step4:按照初始化信息直接生成保存路徑; 

  Step5:判斷要保存的xml文件路徑和要序列化的目錄樹是否為空,如果為空則拋出異常,否則繼續step6; 

  Step6:設置文件流和xml文本寫入對象; { 論文下載:http://www.dblkec.live/ );

  Step7:設計一個遞歸遍歷方法完成xml信息寫入; 

  Step7.1:選擇的序列化目錄路徑; 

  Step7.2:判斷要序列化目錄路徑是否存在,如果存在則生成一個目錄對象,否則結束算法; 

  Step7.3:獲取目錄對象的相關信息,如:包含的子目錄個數和文件個數; 

  Step7.4:生成xml文件的節點,此節點描述出目錄對象的相關信息,如:目錄名字和子目錄數量等; 

  Step7.5:判斷子目錄是否存在,如果存在則遍歷所有的子目錄,對每個子目錄遞歸Step 7.3直到當前目錄中不存在子目錄為止;該目錄是否有子文件,有則進行Step7.6,無則進行Step8; 

  Step7.6:統計子文件所在目錄的名字和子文件的個數,根據目錄名字生成xml的一個節點名,同時為這個節點添加其子節點個數的屬性。遍歷這個目錄的子文件集合,得到子文件的全路徑,生成一個與子文件的名字相同的節點,將該文件的路徑作為一個值寫進去。然后判斷這個目錄對象是否有子目錄,有則進行Step7.3,無則進行Step8; 

  Step8:關閉xml文件寫入和文件流。 

  4 應用實例 

  根據上面的設計方案,開發了一款界面如圖4所示的系統。 

  選擇“Choose directory to use”框中的“browse”按鈕,打開window的瀏覽窗口,選擇要序列化的文件夾,例如本演示中選擇的的目錄:D:\xyx\語義文字。選擇“Choose directory to save”框中的“browse”按鈕,打開window的瀏覽窗口,選擇要保存文件位置,本實例中選擇的目錄是:D:\xmlFile。在“Input filename”后面的文本框中輸入所生成的xml文件的名字:myFirstXml。點擊“view”按鈕,則可看到在目錄D:\xmlFile下面生成了一個名字為myFirstXml的xml文件,如圖6所示。使用任何可以編輯xml文件的編輯器打開xml文件,會發現xml中的內容如圖7所示,打開xml中的任何一個節點,能夠發現文字的根據文件中的內容所標注出來的的語義信息[5],如上下結構中“吉”的語義信息如圖8所示。 

  5 結束語 

  本文描述了使用C#語言在VS2013環境下將windows中目錄信息使用xml文檔存儲的方法,展示了根據此方法做出來的系統及其應用。所生成的xml文檔能夠跨平臺使用的而且不需要用戶安裝任何的軟件和配置任何的參數,提高了程序的運行速度,為目錄樹訪問的項目開發提供了方便和支持。 

  參考文獻: 

  [1] 趙曉琴. 讓Windows7資源管理器也顯示目錄樹[J]. 電腦愛好者, 2012(1): 39-39. 

  [2] 周炎濤, 陳賢謀. ASP.NET中TreeView控件與數據庫結合創建動態目錄樹[J]. 航空計算技術, 2004, 34(2): 25-27. 

  [3] 李貴輝, 宋秀云. 基于WEB的動態目錄樹創建與應用[J]. 電腦知識與技術: 學術交流, 2006(1): 71-72. 

  [4] 田中雨, 郭磊. XML實踐教程[M]. 北京: 清華大學出版社, 2016. 

  [5] 凌海云, 左志宏, 陳蘭, 等. 語義標注元數據及其抽取技術[J]. 計算機應用研究, 2004, 21(7): 147-149.


  • 目錄樹的XML文檔的自動生成

    1背景  目錄樹從根到各級子目錄項是一種有級別差隸屬關系的分支層次結構[1],有關文件管理和調用的許多應用都涉及目錄樹的查找和遍歷。在實際的應用程序開發過程中,經常會遇到...




本文標題:目錄樹的XML文檔的自動生成
本文地址:http://www.dblkec.live/show/209037.html
下一篇:最后一頁
聲明:該文章系網友上傳分享,此內容僅代表網友個人經驗或觀點,不代表本網站立場和觀點;若未進行原創聲明,則表明該文章系轉載自互聯網;若該文章內容涉嫌侵權,請及時向免費論文網投訴!

推薦專題

       
注册送38元 彩票主页