C++xml文件操作 CMarkup学习方法说明 最近正在研究C++下的XML分析工具CMarkup。初次和XML相遇是基于C#对XML的操作。C#的XmlDocument和XmlNode给我印象

本文主要是介绍C++xml文件操作 CMarkup学习方法说明 最近正在研究C++下的XML分析工具CMarkup。初次和XML相遇是基于C#对XML的操作。C#的XmlDocument和XmlNode给我印象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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++下的XML分析工具CMarkup。初次和XML相遇是基于C#对XML的操作。C#的XmlDocument和XmlNode给我印象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852171

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句