TinyXML中类分析
TiXmlElement:
对应于XML的元素,定义了对element的相关操作
成员函数:
TiXmlElement (const char * in_value);
TiXmlElement( const std::string& _value );
TiXmlElement( const TiXmlElement& );
// 定义一个TiXmlElement TiXmlElement& operator=( const TiXmlElement& base );
// TiXmlElement的 =(赋值) 运算符重载 virtual ~TiXmlElement();
// 析构函数 const char* Attribute( const char* name ) const;
const char* Attribute( const char* name, int* i ) const;
const char* Attribute( const char* name, double* d ) const;
// 通过属性名返回属性值,若果该值可以被转化为int/double,则通过第二个参数将转化后的值返回 int QueryIntAttribute( const char* name, int* _value ) const;
int QueryUnsignedAttribute( const char* name, unsigned* _value ) const;
int QueryBoolAttribute( const char* name, bool* _value ) const;
int QueryDoubleAttribute( const char* name, double* _value ) const;
int QueryFloatAttribute( const char* name, float* _value ) const;
int QueryStringAttribute( const char* name, std::string* _value ) const;
// 是Attribute()的替代,但有着更丰富的错误检查 template< typename T > int QueryValueAttribute( const std::string& name, T* outValue ) const;
int QueryValueAttribute( const std::string& name, std::string* outValue ) const;
// 尝试将属性读入不同类型 void SetAttribute( const char* name, const char * _value );
void SetAttribute( const char * name, int value );
void SetDoubleAttribute( const char * name, double value );
// 通过给出属性名和属性值,为元素设置一个属性 void RemoveAttribute( const char * name );
// 通过给出属性名来删除元素对应的属性 const TiXmlAttribute* FirstAttribute() const { return attributeSet.First(); }
TiXmlAttribute* FirstAttribute() { return attributeSet.First(); }
const TiXmlAttribute* LastAttribute() const { return attributeSet.Last(); }
TiXmlAttribute* LastAttribute() { return attributeSet.Last(); }
// 回去元素的第一个/最后一个属性 const char* GetText() const;
// 访问元素内文本 virtual TiXmlNode* Clone() const;
// 创建一个此元素副本,并返回此副本 virtual void Print( FILE* cfile, int depth ) const;
// 将此元素print到一个文件流
TiXmlComment:
对应于XML中的注释
成员函数:
TiXmlComment() : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) {}
TiXmlComment( const char* _value ) : TiXmlNode( TiXmlNode::TINYXML_COMMENT );
TiXmlComment( const TiXmlComment& );
// 创建一个TiXmlComment TiXmlComment& operator=( const TiXmlComment& base );
// 对于TiXmlComment的 =(赋值)运算符重载 virtual ~TiXmlComment() {}
// 析构函数 virtual TiXmlNode* Clone() const;
// 创建一个此TiXmlComment的副本,并返回它 virtual void Print( FILE* cfile, int depth ) const;
virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
virtual const TiXmlComment* ToComment() const { return this; }
virtual TiXmlComment* ToComment() { return this; }
virtual bool Accept( TiXmlVisitor* visitor ) const;
TiXmlText:
对应于XML的文本部分,用于构建Element的文本部分,分为normal和CDATA两个模式
成员函数:
TiXmlText (const char * initValue );
TiXmlText( const TiXmlText& copy );
TiXmlText( const std::string& initValue );
virtual ~TiXmlText() {}
// 构造函数和析构函数 TiXmlText& operator=( const TiXmlText& base );
// 对于TiXmlText的 =(赋值)运算符重载 bool CDATA() const;
// 返回TiXmlText是否为CDATA模式读 void SetCDATA( bool _cdata );
// 设置TiXmlText为是否为(true/false)CDATA模式 virtual void Print( FILE* cfile, int depth ) const;
virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
virtual const TiXmlText* ToText() const { return this; }
virtual TiXmlText* ToText() { return this; }
virtual bool Accept( TiXmlVisitor* content ) const;
TiXmlDeclaration:
对应于XML中的申明部分,<?xml version="?" encoding="?", standalone="?">
成员函数:
TiXmlDeclaration();
TiXmlDeclaration( const std::string& _version,
const std::string& _encoding,
const std::string& _standalone );
TiXmlDeclaration( const char* _version,
const char* _encoding,
const char* _standalone );
TiXmlDeclaration( const TiXmlDeclaration& copy );
// 构建一个TiXmlDeclaration TiXmlDeclaration& operator=( const TiXmlDeclaration& copy );
// 对应于TiXmlDeclaration的 =(赋值)运算符重载 virtual ~TiXmlDeclaration() {}
// 析构函数 const char *Version() const { return version.c_str (); }
const char *Encoding() const { return encoding.c_str (); }
const char *Standalone() const { return standalone.c_str (); }
// 获取 declaration 的 version、encoding、standalone的对应值 virtual TiXmlNode* Clone() const;
// 创建一个TiXmlDeclaration的副本,并将其返回 virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const;
virtual void Print( FILE* cfile, int depth ) const;
virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
virtual const TiXmlDeclaration* ToDeclaration() const { return this; }
virtual TiXmlDeclaration* ToDeclaration() { return this; }
virtual bool Accept( TiXmlVisitor* visitor ) const;
TiXmlDocument:
对应于XML的整个文档,TiXmlDocument作为顶层节点,用于连接XML的其他各个部
分,TiXmlDocument可以被load、save、print
成员函数:
TiXmlDocument();
TiXmlDocument( const char * documentName );
TiXmlDocument( const std::string& documentName );
TiXmlDocument( const TiXmlDocument& copy );
// 创建一个TiXmlDocument TiXmlDocument& operator=( const TiXmlDocument& copy );
// 对应于TiXmlDocument的 =(赋值)运算符重载 virtual ~TiXmlDocument() {}
// 析构函数 bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
// 使用当前文档(或给定文件名\文件指针)值加载文件,操作成功返回true bool SaveFile() const;
bool SaveFile( const char * filename ) const;
bool SaveFile( FILE* ) const;
// 使用当前文档值保存文件(xml),操作成功返回true const TiXmlElement* RootElement() const { return FirstChildElement(); }
TiXmlElement* RootElement() { return FirstChildElement(); }
// 获取文档的根元素 bool Error() const { return error; }
const char * ErrorDesc() const { return errorDesc.c_str (); }
int ErrorId() const { return errorId; }
void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
int ErrorRow() const { return errorLocation.row+; }
int ErrorCol() const { return errorLocation.col+; }
// 错误处理、定位 void SetTabSize( int _tabsize ) { tabsize = _tabsize; }
int TabSize() const { return tabsize; }
// 用于错误处理的函数的函数 void ClearError();
// 当错误被处理后,调用此函数重置错误相关参数 virtual const char* Parse( const char* p, TiXmlParsingData* data = , TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
void Print() const { Print( stdout, ); }
virtual void Print( FILE* cfile, int depth = ) const;
virtual const TiXmlDocument* ToDocument() const { return this; }
virtual TiXmlDocument* ToDocument() { return this; }
virtual bool Accept( TiXmlVisitor* content ) const;
TiXmlHandle:
定义了一些关于XML的操作,TiXmlHandle不是 TinyXml DOM 结构的一部分,而是一个单独
的实用程序类。
成员函数:
TiXmlHandle( TiXmlNode* _node ) { this->node = _node; }
TiXmlHandle( const TiXmlHandle& ref ) { this->node = ref.node; }
// 创建一个TiXmlHandle TiXmlHandle operator=( const TiXmlHandle& ref ) { if ( &ref != this ) this->node = ref.node; return *this; }
// 对应于TiXmlHandle的 =(赋值)运算符重载 TiXmlHandle FirstChild() const;
TiXmlHandle FirstChild( const char * value ) const;
// 返回第一个子节点(或给定名称的子节点)的句柄 TiXmlHandle FirstChildElement() const;
TiXmlHandle FirstChildElement( const char * value ) const;
// 返回第一个子元素(或给定名称的子元素)的句柄 TiXmlHandle Child( const char* value, int index ) const;
TiXmlHandle Child( int index ) const;
// 返回给定索引对应的子节点(/给定名称)的句柄 TiXmlHandle ChildElement( const char* value, int index ) const;
TiXmlHandle ChildElement( int index ) const;
// 返回给定索引对应的子元素(/给定名称)的句柄 TiXmlNode* ToNode() const { return node; }
TiXmlElement* ToElement() const { return ( ( node && node->ToElement() ) ? node->ToElement() : ); }
TiXmlText* ToText() const { return ( ( node && node->ToText() ) ? node->ToText() : ); }
TiXmlUnknown* ToUnknown() const { return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : ); } TiXmlNode* Node() const { return ToNode(); }
TiXmlElement* Element() const { return ToElement(); }
TiXmlText* Text() const { return ToText(); }
TiXmlUnknown* Unknown() const { return ToUnknown(); }
TinyXML中类分析的更多相关文章
- C++中类的内存空间大小(sizeof)分析
注意类大小与结构体大小还是有一些不同的,类里面还包含成员函数(特别是虚函数),结构体中一般只有数据成员. 首先明确各数据类型占多大的空间.例如int到底是占2字节还是4字节空间: 在TC里,int是2 ...
- UI基础:UI中类的继承关系图,最基本的视图分析
首先,UI中常用的UIwindow.UILabel.UIButton.UITextField属于UIView的子类.UITextField和UILabel和UIwindow自身没有初始化方法,需要使用 ...
- Seata 中类SPI使用机制分析
Seata中采用了与sofa-rpc和dubbo中相同的服务扩展机制.都是基于JAVA自身的服务发现机制-SPI进行再次封装注解,sofa-rpc和dubbo(@Deprecated)中的注解名字叫做 ...
- 简单分析JavaScript中的面向对象
初学JavaScript的时候有人会认为JavaScript不是一门面向对象的语言,因为JS是没有类的概念的,但是这并不代表JavaScript没有对象的存在,而且JavaScript也提供了其它的方 ...
- Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)
指纹识别这个名词听起来并不陌生,但是实际开发过程中用得并不多.Google从Android6.0(api23)开始才提供标准指纹识别支持,并对外提供指纹识别相关的接口.本文除了能适配6.0及以上系统, ...
- Hammer.js分析(三)——input.js
input.js是所有input文件夹中类的父类,浏览器事件绑定.初始化特定的input类.各种参数计算函数. Input父类和其子类就是在做绑定事件,各种参数计算.整合.设置等返回自定义事件对象,交 ...
- 深入.NET平台C#编程 测试题分析
选择题讲解 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储介质中的过程 b) 二进制格式化器的Serialize()和Deserialize()方法可 ...
- Android应用内存泄漏的定位、分析与解决策略
什么是内存泄漏 对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法.下面这张图就展示了 Android 内存的回收管理策略( ...
- Android WIFI 分析(一)
本文基于<深入理解Android WiFi NFC和GPS 卷>和 Android N 代码结合分析 WifiService 是 Frameworks中负责wifi功能的核心服务,它主 ...
随机推荐
- 【01】blockqote美化
[01]blockqote美化 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta ch ...
- angularJS $scope的$apply方法实现model刷新
控制器内,$scope有个$apply方法,可以代码更改model并同步更新页面.通常,控制器内的方法执行完毕后仅会自动刷新一次页面展示,使用$apply方法即可在想刷新页面时就刷新.如本例,这个方法 ...
- 五、人生苦短,我用python【第五篇】
Python基本数据类型 运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为 ...
- pytorch将cpu训练好的模型参数load到gpu上,或者gpu->cpu上
假设我们只保存了模型的参数(model.state_dict())到文件名为modelparameters.pth, model = Net() 1. cpu -> cpu或者gpu -> ...
- EasyUI combogrid 赋多个值
var values = []; for (var i = 0; i < rows.length; i++) { if (rows[i].id>0 ) { values.push('' + ...
- BZOJ1925 [Sdoi2010]地精部落 【dp】
题目 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为 N 的山脉 H可分 为从左到右的 N 段,每段有一个独一无二的高度 Hi,其中Hi是1到N ...
- Java的反射机制和动态代理
介绍Java注解的时候,多次提到了Java的反射API.与javax.lang.model不同的是,通过反射API可以获取程序在运行时刻的内部结构.反射API中提供的动态代理也是非常强大的功能,可以原 ...
- 洛谷P2365 任务安排 [解法一]
题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始 ...
- java多线程总结一:线程的两种创建方式及比较
1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应 ...
- yii 之数据库关联查询
<?php namespace app\controllers; use yii\web\Controller; use app\models\Customer; class CustomerC ...