CMarkup與XML(二)

通過以上分析,我們對生成一個XML文檔以及如何解析XML文檔有了一個較爲清晰的認識。下面進一步的深入研究CMarkup類爲我們提供了哪些方法和屬性供我們使用。

以下是我在網上所擊到的功能函數的整理:

1) 初始化
  1.  Load 導入一個XML文件到CMarkup的對象中,並對它進行解析。
  2. SetDoc 從字符串中導入XML數據,並對它解析。

 

2) 輸出
  1. Save XML數據寫入文件中。類似C#Save
  2. GetDoc 將整個XML數據文檔作爲字符串返回。

 

3) 改變當前位置
  1.  FindElem 定位到下一個元素,可能和一個標籤名或路徑匹配。
  2.  FindChildElem 定位到下一個子元素,匹配元素名或路徑。
  3.  FindPrevElem 定位前一個元素,可能和一個標籤名或路徑匹配。
  4.  FindPrevChildElem 定位前一個子元素,可能匹配標籤名。
  5.  FindNode  定位下一個節點,可能和節點類型匹配。
  6. IntoElem  進入當前主位置的下一級,當前的位置變爲父位置。
  7. OutOfElem 使當前父位置變成當前位置。
  8. ResetPos 復位當前位置爲文檔起始位置。
  9. ResetMainPos 將當前主位置復位爲第一個兄弟位置之前。
  10. ResetChildPos 復位當前子位置到第一個子位置之前。
4) 文檔新增
  1. AddElem 在當前主位置元素或最後兄弟位置之後增加一個元素。
  2. InsertElem 在當前主位置元素或第一個兄弟位置之前插入一個元素。
  3. AddChildElem 在當前子位置元素或最後一個子位置之後增加一個元素。
  4. InsertChileElem 在當前子位置元素或低一個子位置之前插入一個元素。
  5. AddSubDoc 在當前主位置元素或最後一個兄弟位置之後增加一個子文檔。
  6. InsertSubDoc 在當前主位置元素或第一個兄弟位置之前插入一個子文檔。
  7. AddChildSubDoc 在當前子位置元素或最後一個子位置之後增加子文檔。
  8. InsertChildSubDoc 在當前子位置元素或第一個子位置之前插入一個子文檔。
  9. AddNode 在當前節點之後或父元素內容末尾增加一個節點。
  10. InsertNode 在當前節點之前或父元素內容開頭插入一個節點。

 

 

 

 

 

 

 

 

 

5) 文檔中刪除
  1. RemoveElem 刪除當前包括子元素的主位置元素
  2. RemoveChildElem 刪除包括當前子元素及其子元素
  3. RemoveNode 刪除當前節點
  4. RemoveAttrib 刪除當前位置元素具體的屬性
  5. RemoveChildAttrib 刪除當前子位置元素的某個具體屬性

 

 

 

 

6) 得到值
  1. GetData 得到當前主位置元素或節點的字符串值
  2. GetChildData 得到當前子位置元素的字符串值
  3.  GetElemContent 得到當前主位置元素包括其子元素的標記內容字符串值
  4.  GetSubDoc 得到當前主位置元素包括其子元素的文檔片斷標記字符串值
  5.  GetChildSubDoc 得到當前子位置元素包括其子元素的文檔片斷標記字符串值
  6.  GetAttrib 得到主位置元素(或正在進行的指令的)某一具體屬性字符串值
  7.  GetChildAttrib 得到子位置某一特定屬性的字符串值
  8.  GetTagName 得到主位置元素(或正在進行的指令的)標籤名稱
  9.  GetChildTagName 得到子位置元素的標籤名稱
  10.  FindGetData 定位到匹配某一具體路徑的下一個元素並返回字符串值

 

 

 

 

 

 

 

 

 

7) 設置值
  1.  SetData 設置當前主位置元素或節點的值
  2.  SetChildData 設置當前子位置元素的值
  3.  SetElemContent 設置當前主位置元素的標記內容
  4.  SetAttrib 設置當前主位置元素(或正在進行的指令的)某一具體屬性的值
  5.  SetChildAttrib 設置當前子位置元素某一具體屬性的值
  6.  FindSetData 定位匹配某一具體路徑的下一個元素並設置其值

 

 

 

 

 

8) 獲取其他信息
  1. GetAttribName 當過當前位置元素屬性的具體索引得到屬性名稱
  2. GetNodeType 得到當前節點的節點類型
  3. GetElemLevel 得到當前主位置的級數
  4. GetElemFlags 得到當前主位置元素的標誌
  5. SetElemFlags 設置當前主位置元素的標誌
  6. GetOffsets 獲得在當前主位置偏移的文檔文本
  7. GetAttribOffsets 獲得在當前主位置特定屬性便宜的文檔文本

 

 

 

 

 

 

9) 保存位置信息
  1. SavePos hash map中使用可選字符串名稱保存當前位置
  2. RestorePos 定位到通過SavePos保存的位置
  3. SetMapSize 設置SavePosRestorePos使用的hash map大小
  4. GetElemIndex 得到當前主位置元素整形索引值
  5. GotoElemIndex 設置當前主位置元素爲給定的整形索引值
  6. GetChildElemIndex 得到當前子位置元素的整形索引值
  7. GotoChildElemIndex 設置當前子位置元素爲給定的整形索引值
  8. GetParentElemIndex 獲得當前父位置元素的整形索引值
  9. GotoParentElemIndex 設置當前父位置元素爲給定的整形索引值
  10. GetElemPath 獲得表示主位置元素絕對路徑的字符串
  11. GetChildElemPath 獲得表示子位置元素的絕對路徑的字符串
  12. GetParentElemPath 獲得表示父位置元素的絕對路徑的字符串

 

 

 

 

 

 

 

 

 

 

 

10) 文檔狀態
  1. IsWellFormed 判定文檔是否有單一根元素和恰當地包含元素
  2. GetError 從最後的解析中返回錯誤(信息)字符串
  3. GetDocFlags 返回文檔標誌
  4. SetDocFlags 設置文檔標誌
  5. GetDocElemCount 返回文檔中元素的個數

 

 

 

 

11) 靜態的實用函數
  1. ReadTextFile 讀一個文本文件轉成字符串
  2. WirteTextFile 寫字符串到文本文件中
  3. GetDeclareEncoding XML聲明中得到編碼的名字
  4. EscapeText 返回標記中某一字符的編碼
  5. UnescapeText 返回字符串值得某一特定字符解碼
  6. UTF8ToA UTF-8字符轉成非Unicode(如ANSI)字符
  7. AToUTF8 將非Unicode(如ANSI)字符轉成UTF-8字符
  8. UTF16T08 UTF-16字符轉成UTF-8
  9. UTF8To16 UTF-8字符轉成UTF-16
  10. EncodeBase64 將二進制數據譯成Base64字符串
  11. DecodeBase64 Base64字符譯成二進制數據

 

 

 

 

 

 

 

 

 

 

 

 

自此,CMarkup的方法說明我已經翻譯完成。有很多都是按照自己的理解或純按字面意思翻譯的。肯定還是理解不夠準確地。後面的文章中,我會對每一個方法的代碼進行一些簡單分析,主要是給自己做技術積累用。歡迎大家指導! 

發佈了11 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章