CMarkup简介

最近准备写一些xml解析的小程序,开始使用了tinyxml,不过tinyxml不支持Unicode,比较麻烦,后来又使用了CMarkup,找到CMarkup的一些文档,随口阅读的过程翻译之,记如下(P.S. 真正NB的程序员是不是应该自己写个XML的解析?o(∩_∩)o )。
     ――magictong  2011.07.26 夜

    下面是CMarkup的类成员函数列表。这些函数的设计都是基于源EDOM的。带阴影的函数只存在于CMarkup的Developer版本中。(译注:所谓Developer版本就是收费的,我们一般使用他的Evaluation版本,其实就是阉割版o(∩_∩)o ,不过已经够了,因此下面的翻译中带阴影的函数我就不列出来了,可以自己去原文看。)

初始化
     Load 从一个(xml)文件构建CMarkup对象并对其进行解析。
     SetDoc 从一个字符串构建CMarkup对象并对其进行解析。

输出
     Save 把xml文档数据写到文件中。
     GetDoc 将整个xml文档数据作为一个字符串返回。

改变当前位置
     FindElem 定位到下一个元素,可以选择匹配标签名或者路径。
     FindChildElem 定位到下一个子元素,可以选择匹配标签名或者路径。
     FindNode 定位到下一个节点,可选择匹配节点类型。
     IntoElem 进入当前位置的下一级位置,而当前位置则变为父位置。
     OutOfElem 使当前位置的父位置变为当前位置。
     ResetPos 复位当前位置为文档的起始位置。
     ResetMainPos 复位当前位置为第一个兄弟位置之前。
     ResetChilePos 复位当前的子位置为第一个子位置之前。

添加元素
     AddElem 在当前位置元素或者最后一个兄弟之后新增一个元素。
     InsertElem 在当前位置元素或者第一个兄弟之前插入一个元素。
     AddChildElem 在当前子位置元素或者最后一个子位置之后增加一个元素。
     InsertChildElem在当前子位置元素或者第一个子位置之前插入一个元素。
     AddSubDoc 在当前位置元素或者最后一个兄弟之后新增一个子文档。
     InsertSubDoc 在当前位置元素或者第一个兄弟之前新增一个子文档。
     AddChildSubDoc在当前子位置元素或者最后一个子位置之后增加一个子文档。
     InsertChildSubDoc在当前子位置元素或者第一个子位置之前插入一个子文档。
     AddNode 在当前节点的后面或者父元素内容的末尾新增一个节点。
     InsertNode在当前节点的前面或者父元素内容的开头新增一个节点。
     (译注:注意区分元素和节点,元素只是一种特殊的节点而已。)

删除元素
     RemoveElem 删除当前位置元素,包括子元素。
     RemoveChildElem 删除当前位置的子元素,包括子元素的子元素。
     RemoveNode 删除当前节点。
     RemoveAttrib 从当前位置的元素中删除指定的属性
     RemoveChildAttrib的子 从当前位置的子元素中删除指定的属性

获取数据
     GetData 返回当前位置元素或者节点的字符串值。
     GetChildData 返回当前子位置元素的字符串值。
     GetElemContent 返回当前位置包括子位置的markup字符串内容
     GetSubDoc 返回当前位置包括子位置的子文档markup字符串内容
     GetChildSubDoc 返回当前子位置包括其子位置的子文档markup字符串内
     GetAttrib 获得当前位置某指定的具体属性的字符串值
     GetChildAttrib 获得当前子位置某指定的具体属性的字符串值
     GetTagName 获得当前位置的标签的名称
     GetChildTagName 获得当前子位置的标签的名称

设置值,修改数据
     SetData 设置当前位置元素或者节点的值
     SetChildData 设置当前子位置元素的值
     SetElemContent 将当前位置元素用markup(标记)内容来替换
     SetAttrib 设置当前位置元素的指定属性的值
     SetChildAttrib 设置当前子位置元素的指定属性的值

获取其它信息
     GetNthAttrib 通过传入属性的索引获得当前位置指定的属性名称和属性值(译注:所谓属性的索引就是0~n-1这样递增序列,n表示属性的数量)
     GetAttribName 通过传入属性的索引获得当前位置指定的属性名称
     GetNodeType 返回当前节点的节点类型

获取位置信息
     SavePos 使用一个可选的字符串把当前位置保存到一个hash map中
     RestorePos 定位到通过SavePos保存的位置
     SetMapSize 设置SavePos和RestorePos可以使用hash map的大小

文档状态信息
     IsWellFormed 判断是否仅有单一的根元素并且恰当得容纳元素
     GetResult 返回最后一次解析或者文件操作后结果的xml字符串(译注:类似于错误码)
     GetError 返回最后一次解析或者文件操作后的结果描述字符串
     GetDocFlags 返回文档标志
     SetDocFlags 设置文档标志

静态通用函数
     ReadTextFile 读取一个文本文件并转换为字符串
     WriteTextFile 将字符串写到一个文本文件中
     GetDeclaredEncoding 从XML的声明中获得编码的字符串名称
     EscapeText 返回把特殊字符(xml特殊字符)编码过的字符串
     UnescapeText 返回把特殊字符(xml特殊字符)解码过的字符串
     UTF8ToA 将UTF-8字符串转换成非Unicode(例如ANSI)字符串
     AToUTF8 将非Unicode(例如ANSI)字符串转换成UTF-8字符串
     UTF16To8 将UTF-16字符串转换成UTF-8字符串
     UTF8To16 将UTF-8字符串转换成UTF-16字符串


你可能感兴趣的:(c,CMarkup简介)