c++ xml markup


C++xml文件操作 CMarkup學習方法說明(轉)  

2009-02-20 12:19:31|  分類: c++ |  標簽: |字號 訂閱

 
 
   最近正在研究C++下的XML分析工具CMarkup。初次和XML相遇是基於C#對XML的操作。C#的XmlDocument和XmlNode給我印象之深,讓我至今都無法忘懷。現在想在C++下發掘XML的強大,結果卻發現建房子你除了需要基本的建設材料外,還需要些而外的工具。不像C#那樣,已經打成包供你直接使用了。好在有知道CMarkup這個小型XML的分析器,可以為我所用。俗話說:磨刀不誤砍柴工。我現在就來磨下刀。

CMarkup類下載地址:http://download.csdn.net/detail/zahxz/7291845

CMarkup示例下載地址:http://download.csdn.net/detail/zahxz/7291901


1、初始化
Load 導入一個XML文件到CMarkup的對象中,並對它進行解析。類似C#的Load。
SetDoc 從字符串中導入XML數據,並對它解析。類似C#的LoadXml。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM