CMarkup成员方法简介

2024-03-27 12:58
文章标签 方法 成员 简介 cmarkup

本文主要是介绍CMarkup成员方法简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CMarkup成员方法简介


翻译:magictong(童磊)2011年7月
版权:First Objective Software, Inc. All rights reserved. 
原文地址:
http://www.firstobject.com/dn_markupmethods.htm
原文标题:CMarkup Methods

      最近准备写一些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字符串

这篇关于CMarkup成员方法简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中的getBytes()方法使用详解

《Java中的getBytes()方法使用详解》:本文主要介绍Java中getBytes()方法使用的相关资料,getBytes()方法有多个重载形式,可以根据需要指定字符集来进行转换,文中通过代... 目录前言一、常见重载形式二、示例代码三、getBytes(Charset charset)和getByt

nginx负载均衡及详细配置方法

《nginx负载均衡及详细配置方法》Nginx作为一种高效的Web服务器和反向代理服务器,广泛应用于网站的负载均衡中,:本文主要介绍nginx负载均衡及详细配置,需要的朋友可以参考下... 目录一、 nginx负载均衡策略1.1 基本负载均衡策略1.2 第三方策略1.3 策略对比二、 nginx配置2.1

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

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的语句分

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll