程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Xml日志記錄文件最優方案

Xml日志記錄文件最優方案

編輯:關於ASP.NET

Xml作為數據存儲的一種方式,當數據非常大的時候,我們將碰到很多Xml處理的問題。通常,我們對Xml文 件進行編輯的最直接的方式是將xml文件加載到XmlDocument,在內存中來對XmlDocument進行修改,然後再保 存到磁盤中。這樣的話我們將不得不將整個XML document 加載到內存中,這明顯是不明智的(對於大數據XML 文件來說,內存將消耗很大,哥表示鴨梨很大)。下面我們將要講的是如何高效的增加內容(對象實體內容) 到xml日志文件中。

(一)設計概要

總體來說,我們將(通過代碼)創建兩種不同的文件,第 一種為Xml文件,第二種為xml片段(txt文件),如下圖所示:

我們通過如下的定義來使2個不同的文件相關聯。

<!ENTITY yourEntityRefName  SYSTEM   "your xml fragement address(relative or obsolute address) ">

(二)xml 文件的生成

先來看下如何創建相關的xml文件,代碼如下:

private static void 

InitXmlFile(string xmlLogFilePath, string xmlLogContentFileName, string entityRef)
        {
            string docType = string.Format("\n<!DOCTYPE XmlLogFile \n [ \n <!ENTITY 

{0} SYSTEM \"{1}\">\n ]>\n", entityRef, xmlLogContentFileName);
            XmlWriterSettings wrapperSettings = new XmlWriterSettings()
            {
                Indent = true
            };
            using (XmlWriter writer = XmlWriter.Create(xmlLogFilePath, wrapperSettings))
            {
                writer.WriteStartDocument();
                writer.WriteRaw(docType);
                writer.WriteStartElement(ConfigResource.XmlLogFile);
    
                writer.WriteStartElement(ConfigResource.XmlLogContent);
                writer.WriteEntityRef(entityRef);
                writer.WriteEndElement();
    
                writer.WriteEndElement();
                writer.Close();
            }
        }

對xml文件內容的寫入主要通過XmlWriter來進行操作的。這個方法比較簡單,不再講解,看下我們通過這 個方法生成的文件內容:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE XmlLogFile 
 [ 
 <!ENTITY Locations SYSTEM "XmlLogContentFile-20110220000120.txt">
 ]>
<XmlLogFile>
  <XmlLogContent>&Locations;</XmlLogContent>
</XmlLogFile>

Locations 為實體引用名稱,與之相對應的為&Locations;   。

XmlLogContentFile-20110220000120.txt為Xml片段的文件名稱,路徑是相對於XmlLogFile- 20110220000120.xml的。

&Locations;相當於占位符的作用,將用XmlLogContentFile- 20110220000120.txt文件的內容來替換XmlLogFile-20110220000120.xml的&Locations;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved