`
huozheleisi
  • 浏览: 1287355 次
文章分类
社区版块
存档分类
最新评论

C++xml文件操作 CMarkup学习方法说明

 
阅读更多

最近正在研究C++下的XML分析工具CMarkup。初次和XML相遇是基于C#对XML的操作。C#的XmlDocument和XmlNode给我印象之深,让我至今都无法忘怀。现在想在C++下发掘XML的强大,结果却发现建房子你除了需要基本的建设材料外,还需要些而外的工具。不像C#那样,已经打成包供你直接使用了。好在有知道CMarkup这个小型XML的分析器,可以为我所用。俗话说:磨刀不误砍柴工。我现在就来磨下刀。
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的方法说明我已经翻译完成。有很多都是按照自己的理解或纯按字面意思翻译的。肯定还是理解不够准确地。后面的文章中,我会对每一个方法的代码进行一些简单分析,主要是给自己做技术积累用。欢迎大家指导!

分享到:
评论

相关推荐

    C++ XML 文件解析 Cmarkup类

    以下是一个简单的C++程序,展示如何使用Cmarkup类解析并打印XML文件的根元素: ```cpp #include "CMarkup.h" int main() { CMarkup markup; if (markup.ParseFile("example.xml")) { while (markup.NextElem...

    XML解析 CMarkup类 c++

    然而,对于大型或复杂的XML文件,CMarkup可能不如DOM或SAX解析器那样强大,因为它不支持事件驱动的解析,而是基于内存中的整个XML文档模型。 在实际项目中,根据需求和性能要求,可能需要权衡使用CMarkup或其他更...

    xml_builder.zip_CMarkup_c++ builder xml_cmarkup.zip

    通过阅读"markupclass_demo.zip"中的示例代码,开发者可以快速掌握CMarkup的基本用法,比如如何创建XML文档、解析XML文件、遍历XML结构、修改元素属性和值等。而"markupclass_src.zip"中的源代码则可以帮助开发者...

    c++ XML解析 CMarkup示例

    在C++编程中,处理XML文件通常需要借助第三方库,CMarkup就是其中一种流行的轻量级XML解析库。这个库提供了一个简单易用的API,使得在C++中操作XML变得相对直观。 CMarkup库由Mark R. Harrah开发,它提供了读取、...

    ReadXML_readxml_C++_xml_CMarkup_

    总之,CMarkup库为C++开发者提供了一种简洁的方式来读取和操作XML文件。通过其丰富的API,你可以轻松地遍历XML树,获取多层次的信息,以及进行必要的修改。理解和熟练使用CMarkup库对于处理XML数据的C++项目来说是至...

    CMarkup XML操作的C++类

    1. **解析XML文档**:CMarkup能够读取XML文件或字符串,将其解析为内存中的元素树结构。解析过程会检查XML文档的语法正确性,并对错误进行报告。 2. **遍历XML元素**:类提供了方法来访问XML文档的根元素,以及遍历...

    xml解析类CMarkup

    CMarkup是一个C++编写的XML解析库,它允许开发者在C++环境中处理XML文档,提供了友好的API来操作XML结构。CMarkup不仅支持中文字符,而且易于使用,使得XML解析在C++项目中变得更为便捷。 CMarkup的核心功能包括: ...

    XML解析类CMarkup

    CMarkup是一个C++库,专门设计用来解析和操作XML文档。这个库提供了一个简单易用的接口,使得程序员能够方便地访问XML文档的结构和内容。 CMarkup的实现主要包括两个核心文件:`Markup.cpp`和`Markup.h`。`Markup....

    vc CMarkup缩进格式化xml

    VC CMarkup是Microsoft Visual C++环境下用来操作XML的一种库,它提供了方便的API来帮助程序员解析、生成和格式化XML文档。本文将详细介绍CMarkup库如何处理XML文件,以及如何实现XML的缩进格式化。 首先,CMarkup...

    vc中操作Xml-使用CMarkup.pdf

    要读取XML文档,需要使用`Load`方法加载XML文件。之后可以使用`ResetMainPos`方法将解析器的位置重置到文档的开始位置。`FindChildElem`和`FindElem`方法可以分别用于查找子元素和任何元素。`GetTagName`和`GetData`...

    CMarkup所有方法说明

    CMarkup是一个用于XML处理的C++类库,它提供了一系列方法来操作XML文档,包括读取、写入、查找、修改和删除XML元素及属性。以下是对CMarkup主要方法的详细说明: 1. 初始化与加载: - `Load`:这个方法用于从文件...

    CMarkup XML操作类

    1. **解析XML文档**:它可以读取XML文件并将其解析成内存中的对象结构,方便后续操作。通过`SetDoc()`方法加载XML文档,`MainElement()`则返回根元素。 2. **遍历XML节点**:CMarkup提供了`FindChildElement()`, `...

    CMarkup markup 对vc中xml文件进行操作

    CMarkup通过内存中的DOM树来代表XML文档,使得你可以通过C++的对象和方法来操作XML元素、属性和文本。 在使用CMarkup时,你需要包含其头文件`CMarkup.h`,并链接相应的库文件。一旦完成,你就可以实例化CMarkup对象...

    xml 功能大全(cmarkup)

    这些代码展示了如何加载XML文件,查找特定元素,修改元素内容,以及保存修改后的文档。 9. **头文件引用** 文件`Markup.h`包含CMarkup类的定义,`stdafx.h`通常包含了预编译的头文件,如STL库和MFC库的引用。其他...

    XML文档处理类CMarkup.zip

    CMarkup是一个C++类库,专门设计用来解析和操作XML文档。这个压缩包“XML文档处理类CMarkup.zip”包含了一个C++实现的XML处理工具,便于在C++项目中对XML进行读取、修改和写入。 CMarkup类主要提供了以下功能: 1....

    XML解析实例(使用了CMarkup类)

    CMarkup是Microsoft的一个类库,专门用于XML文档的解析和操作,它为C++开发者提供了一个方便的接口来处理XML内容。 本实例中,我们将探讨如何使用CMarkup类进行XML文件的解析。首先,我们需要理解CMarkup的基本用法...

    VC-XML基本操作

    1. **加载XML文档**:使用`Load`或`Parse`方法加载XML文件或字符串。 2. **定位元素**:使用`FindElem`或`FindChildElem`等方法找到特定元素。 3. **获取元素内容**:使用`GetText`方法获取元素的内容或属性。 导航...

    VC实现XML解析CMarkup

    CMarkup类包含了多个成员变量,如m_strDoc(XML文档字符串)、m_iPos(当前解析位置)等,以及一系列方法,如MarkUp()(解析XML)、FindElement()(查找元素)等,这些方法提供了对XML文档的访问和操作。 2. **初始...

    vc cmarkup 遍历 xml 树

    CMARKUP是由Steve Fabian开发的一个轻量级的C++ XML解析库,它提供了一个简单易用的接口,使开发者能够方便地解析XML文档,并通过元素、属性和文本节点进行操作。以下是你需要了解的关于如何使用CMARKUP遍历XML树的...

    cmarkup 解析 xml

    VC解析XML--使用CMarkup类解析XML (一) 先讲一下XML中的物殊字符,手动填写时注意一下。 字符 字符实体 & &或& ' '或' > >或> ;或&< " "或" (二) CMarkup类的源...

Global site tag (gtag.js) - Google Analytics