通過以上分析,我們對生成一個XML文檔以及如何解析XML文檔有了一個較爲清晰的認識。下面進一步的深入研究CMarkup類爲我們提供了哪些方法和屬性供我們使用。
以下是我在網上所擊到的功能函數的整理:
1) 初始化
- Load 導入一個XML文件到CMarkup的對象中,並對它進行解析。
- SetDoc 從字符串中導入XML數據,並對它解析。
2) 輸出
- Save 將XML數據寫入文件中。類似C#的Save。
- GetDoc 將整個XML數據文檔作爲字符串返回。
3) 改變當前位置
- FindElem 定位到下一個元素,可能和一個標籤名或路徑匹配。
- FindChildElem 定位到下一個子元素,匹配元素名或路徑。
- FindPrevElem 定位前一個元素,可能和一個標籤名或路徑匹配。
- FindPrevChildElem 定位前一個子元素,可能匹配標籤名。
- FindNode 定位下一個節點,可能和節點類型匹配。
- IntoElem 進入當前主位置的下一級,當前的位置變爲父位置。
- OutOfElem 使當前父位置變成當前位置。
- ResetPos 復位當前位置爲文檔起始位置。
- ResetMainPos 將當前主位置復位爲第一個兄弟位置之前。
- ResetChildPos 復位當前子位置到第一個子位置之前。
4) 文檔新增
- AddElem 在當前主位置元素或最後兄弟位置之後增加一個元素。
- InsertElem 在當前主位置元素或第一個兄弟位置之前插入一個元素。
- AddChildElem 在當前子位置元素或最後一個子位置之後增加一個元素。
- InsertChileElem 在當前子位置元素或低一個子位置之前插入一個元素。
- AddSubDoc 在當前主位置元素或最後一個兄弟位置之後增加一個子文檔。
- InsertSubDoc 在當前主位置元素或第一個兄弟位置之前插入一個子文檔。
- AddChildSubDoc 在當前子位置元素或最後一個子位置之後增加子文檔。
- InsertChildSubDoc 在當前子位置元素或第一個子位置之前插入一個子文檔。
- AddNode 在當前節點之後或父元素內容末尾增加一個節點。
- InsertNode 在當前節點之前或父元素內容開頭插入一個節點。
5) 文檔中刪除
- RemoveElem 刪除當前包括子元素的主位置元素
- RemoveChildElem 刪除包括當前子元素及其子元素
- RemoveNode 刪除當前節點
- RemoveAttrib 刪除當前位置元素具體的屬性
- RemoveChildAttrib 刪除當前子位置元素的某個具體屬性
6) 得到值
- GetData 得到當前主位置元素或節點的字符串值
- GetChildData 得到當前子位置元素的字符串值
- GetElemContent 得到當前主位置元素包括其子元素的標記內容字符串值
- GetSubDoc 得到當前主位置元素包括其子元素的文檔片斷標記字符串值
- GetChildSubDoc 得到當前子位置元素包括其子元素的文檔片斷標記字符串值
- GetAttrib 得到主位置元素(或正在進行的指令的)某一具體屬性字符串值
- GetChildAttrib 得到子位置某一特定屬性的字符串值
- GetTagName 得到主位置元素(或正在進行的指令的)標籤名稱
- GetChildTagName 得到子位置元素的標籤名稱
- FindGetData 定位到匹配某一具體路徑的下一個元素並返回字符串值
7) 設置值
- SetData 設置當前主位置元素或節點的值
- SetChildData 設置當前子位置元素的值
- SetElemContent 設置當前主位置元素的標記內容
- SetAttrib 設置當前主位置元素(或正在進行的指令的)某一具體屬性的值
- SetChildAttrib 設置當前子位置元素某一具體屬性的值
- FindSetData 定位匹配某一具體路徑的下一個元素並設置其值
8) 獲取其他信息
- GetAttribName 當過當前位置元素屬性的具體索引得到屬性名稱
- GetNodeType 得到當前節點的節點類型
- GetElemLevel 得到當前主位置的級數
- GetElemFlags 得到當前主位置元素的標誌
- SetElemFlags 設置當前主位置元素的標誌
- GetOffsets 獲得在當前主位置偏移的文檔文本
- GetAttribOffsets 獲得在當前主位置特定屬性便宜的文檔文本
9) 保存位置信息
- SavePos 在hash map中使用可選字符串名稱保存當前位置
- RestorePos 定位到通過SavePos保存的位置
- SetMapSize 設置SavePos和RestorePos使用的hash map大小
- GetElemIndex 得到當前主位置元素整形索引值
- GotoElemIndex 設置當前主位置元素爲給定的整形索引值
- GetChildElemIndex 得到當前子位置元素的整形索引值
- GotoChildElemIndex 設置當前子位置元素爲給定的整形索引值
- GetParentElemIndex 獲得當前父位置元素的整形索引值
- GotoParentElemIndex 設置當前父位置元素爲給定的整形索引值
- GetElemPath 獲得表示主位置元素絕對路徑的字符串
- GetChildElemPath 獲得表示子位置元素的絕對路徑的字符串
- GetParentElemPath 獲得表示父位置元素的絕對路徑的字符串
10) 文檔狀態
- IsWellFormed 判定文檔是否有單一根元素和恰當地包含元素
- GetError 從最後的解析中返回錯誤(信息)字符串
- GetDocFlags 返回文檔標誌
- SetDocFlags 設置文檔標誌
- GetDocElemCount 返回文檔中元素的個數
11) 靜態的實用函數
- ReadTextFile 讀一個文本文件轉成字符串
- WirteTextFile 寫字符串到文本文件中
- GetDeclareEncoding 從XML聲明中得到編碼的名字
- EscapeText 返回標記中某一字符的編碼
- UnescapeText 返回字符串值得某一特定字符解碼
- UTF8ToA 將UTF-8字符轉成非Unicode(如ANSI)字符
- AToUTF8 將非Unicode(如ANSI)字符轉成UTF-8字符
- UTF16T08 將UTF-16字符轉成UTF-8
- UTF8To16 將UTF-8字符轉成UTF-16
- EncodeBase64 將二進制數據譯成Base64字符串
- DecodeBase64 將Base64字符譯成二進制數據
自此,CMarkup的方法說明我已經翻譯完成。有很多都是按照自己的理解或純按字面意思翻譯的。肯定還是理解不夠準確地。後面的文章中,我會對每一個方法的代碼進行一些簡單分析,主要是給自己做技術積累用。歡迎大家指導!