TinyXml接口

TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作,其主页是:http://www.grinninglizard.com/tinyxml/,目前最新版本是2_6_2。


TinyXml总体包含如下几个类

 

下面逐一进行描述。


1.TiXmlBase

描述: 在 TinyXml 中,它是所有类的父类

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">virtual void Print(FILE *cfile, int depth) const = 0;	</span></span>
<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">int Row() const
int Column() const
void SetUserData(void *user)</span></span>
<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">void * GetUserData()
const void * GetUserData() const</span></span>

静态公有函数

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">static void SetCondenseWhiteSpace(bool condense)
static bool IsWhiteSpaceCondensed()
static void EncodeString(const TIXML_STRING&str, TIXML_STRING *out)</span></span>

2.TiXmlAttribute

描述: 属性 

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlAttribute()
TiXmlAttribute(const std::string& _name, const std::string& _value)
TiXmlAttribute(const char * _name, const char * _value)
const char * Name() const
const char * Value() const
const std:string& ValueStr() const
int IntValue() const
double DoubleValue() const
int QueryIntValue(int *_value) const
int QueryDoubleValue(double *_value) const
 void SetName(const char* _name)
void SetValue(const char* _value)
void SetIntValue(int _value)
void SetDoubleValue(double _ value)
void SetName(const std::string & _name)
void SetValue(const std::string & _value)
const TiXmlAttribute * Next() const
const TiXmlAttribute * Previous() const
virtual void Print(FILE *cfile, int depth) const</span></span>

 3. TiXmlNode 

描述: 在文档对象模型(DOM)中,它是所有一切节点的父类

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">const char * Value () const
const std::string & ValueStr () const
void SetValue (const char *_value)
void SetValue (const std::string &_value)
void Clear ()
TiXmlNode * Parent () FirstChild () const FirstChild (const char *value) const
const TiXmlNode *
const TiXmlNode *
TiXmlNode * FirstChild (const char *_value)
TiXmlNode * LastChild ()
TiXmlNode * LastChild (const char *_value)
const TiXmlNode * FirstChild (conststd::string &_value) const
TiXmlNode * FirstChild (const std::string&_value)
const TiXmlNode * LastChild (const std::string &_value) const
TiXmlNode * LastChild (const std::string&_value)
const TiXmlNode *
const TiXmlNode * IterateChildren (const TiXmlNode *previous) constIterateChildren (const char *value, const TiXmlNode *previous) const
const TiXmlNode * IterateChildren (const std::string &_value, constTiXmlNode *previous) const
TiXmlNode * IterateChildren (const std::string &_value, const TiXmlNode*previous)
TiXmlNode * InsertEndChild (const TiXmlNode &addThis)
TiXmlNode * LinkEndChild (TiXmlNode *addThis)
TiXmlNode * InsertBeforeChild (TiXmlNode *beforeThis, const TiXmlNode&addThis)
TiXmlNode * InsertAfterChild (TiXmlNode *afterThis, constTiXmlNode &addThis)
TiXmlNode * ReplaceChild (TiXmlNode*replaceThis, const TiXmlNode &withThis)
bool RemoveChild (TiXmlNode*removeThis)
const TiXmlNode *
const TiXmlNode *
const TiXmlNode * PreviousSibling () constPreviousSibling (const char *) const PreviousSibling (const std::string&_value) const
TiXmlNode * PreviousSibling (const std::string &_value)
const TiXmlNode * NextSibling (const std::string &_value) const
TiXmlNode * NextSibling (const std::string&_value)
const TiXmlNode * NextSibling () const
const TiXmlNode * NextSibling (const char *) const
const TiXmlElement * NextSiblingElement ()const
const TiXmlElement * NextSiblingElement (const char *) const
const TiXmlElement * NextSiblingElement(const std::string &_value) const
TiXmlElement * NextSiblingElement (const std::string &_value)
const TiXmlElement * FirstChildElement () const
const TiXmlElement * FirstChildElement (const char *_value) const
const TiXmlElement * FirstChildElement(const std::string &_value) const
TiXmlElement * FirstChildElement (const std::string &_value)
int Type () const
const TiXmlDocument * GetDocument () const
bool NoChildren () const
virtual const TiXmlDocument *
virtual const TiXmlElement *
virtual const TiXmlComment * ToDocument ()const ToElement () const ToComment () const
virtual const TiXmlUnknown * ToUnknown () const
virtual const TiXmlText * ToText () const
virtual const TiXmlDeclaration * ToDeclaration () const
virtual TiXmlDocument * ToDocument ()
virtual TiXmlElement * ToElement ()
virtual TiXmlComment * ToComment ()
virtual TiXmlUnknown * ToUnknown ()
virtual TiXmlText * ToText ()ToDeclaration ()
virtual TiXmlDeclaration *
virtual TiXmlNode * Clone () const =0
virtual bool Accept (TiXmlVisitor *visitor) const =0</span></span>

4.TiXmlComment

 描述: 表示 XML 文件中的注释

公有函数

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlComment ()
TiXmlComment (const char *_value)
virtual TiXmlNode * Clone () const
virtual void Print (FILE *cfile, int depth) const
virtual const TiXmlComment * ToComment () const
virtual TiXmlComment * ToComment ()
virtual bool Accept (TiXmlVisitor *visitor)const</span></span>

5.TiXmlDeclaration

 描述:表示 XML 文件中的声明

 公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlDeclaration ()
TiXmlDeclaration (const std::string &_version, const std::string&_encoding, const std::string &_standalone)
TiXmlDeclaration (const char *_version, const char *_encoding, const char*_standalone)
const char * Version () const
const char * Encoding () const
const char * Standalone () const Clone () const
virtual TiXmlNode *
virtual void Print (FILE *cfile, int depth)const
virtual const TiXmlDeclaration *
virtual TiXmlDeclaration * ToDeclaration () const ToDeclaration ()
virtual bool Accept (TiXmlVisitor*visitor) const</span></span>

 6. TiXmlDocument 

描述:在文档对象模型(DOM)中, 始终作为 XML 文档的最顶端节点

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlDocument ()
TiXmlDocument (const char *documentName)
TiXmlDocument (const std::string &documentName)
bool LoadFile (TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)
bool SaveFile () const
bool LoadFile (const char *filename, TiXmlEncodingencoding=TIXML_DEFAULT_ENCODING)
bool SaveFile (const char *filename) const
bool LoadFile (FILE *, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)
bool SaveFile (FILE *) const
bool LoadFile (const std::string &filename, TiXmlEncodingencoding=TIXML_DEFAULT_ENCODING)
bool SaveFile (const std::string &filename) const
virtual const char * Parse (const char *p, TiXmlParsingData *data=0,TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)
const TiXmlElement * RootElement() const
bool Error () const
const char * ErrorDesc () const
int ErrorId () const
int ErrorRow () const
int ErrorCol () const
void SetTabSize (int _tabsize)
void ClearError ()
void Print () const
virtual void Print (FILE *cfile, int depth=0) const
virtual const TiXmlDocument * ToDocument() const
virtual TiXmlDocument * ToDocument ()
virtual bool Accept (TiXmlVisitor*content) const
</span></span>

 7. TiXmlElement 

描述: TiXmlElement 是一个容器类,它有值和名称,也可以包含其它元素(如:文本,注释等),同时 它还可以拥有很多属性

 公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlElement (const char *in_value)
TiXmlElement (const std::string&_value)
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 QueryIntAttribute (const char *name,int *_value) const
int QueryDoubleAttribute (const char *name, double *_value) const
int QueryFloatAttribute (const char *name, float *_value) const
int QueryValueAttribute (const std::string &name, T *outValue) const
void SetAttribute (const char *name, constchar *_value)
void SetAttribute (const std::string &name, const std::string &_value)
void SetAttribute (const char *name, int value)
void SetDoubleAttribute (const char *name, double value)
void RemoveAttribute (const char *name)
void RemoveAttribute (const std::string &name)
const TiXmlAttribute * FirstAttribute () const
const TiXmlAttribute * LastAttribute ()const
const char * GetText () const
virtual TiXmlNode * Clone () const
virtual void Print (FILE *cfile, int depth) const
virtual const TiXmlElement * ToElement () const
virtual TiXmlElement * ToElement ()
virtual bool Accept (TiXmlVisitor *visitor) const
</span></span>

8.TiXmlText 描述: 表示 XML 文件中的文本节点

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">TiXmlText (const char *initValue)
TiXmlText (const std::string&initValue)
virtual void Print (FILE *cfile, int depth) const
bool CDATA () const
void SetCDATA (bool _cdata)
virtual const TiXmlText * ToText () const
virtual TiXmlText * ToText ()
virtual bool Accept (TiXmlVisitor *content)const
</span></span>

9.TiXmlUnkown 描述:在 XML 文件中无法识别的节点用 TiXmlUnkown 来表示

公有函数:

<span style="font-family:SimSun;font-size:14px;"><span style="font-family:Microsoft YaHei;font-size:14px;">virtual TiXmlNode * Clone () const
virtual void Print (FILE *cfile, int depth) const
virtual const TiXmlUnknown * ToUnknown () const
virtual TiXmlUnknown * ToUnknown ()
virtual bool Accept (TiXmlVisitor *content) const</span></span>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源项目TinyXml项目所涉及的字符编码明如下: 1. TinyXml函数调用接口的字符型参数,仅支持`窄字符`格式(char*),不兼容`宽字符`格式(wchar_t*)。 2. TinyXml函数提供的Xml内容解析功能,仅支持以ANSI编码和UTF8编码的Xml字符串,也即`多字节编码`。 3. TinyXml函数提供的Xml内容解析功能,不支持内容以UTF16编码和UTF32编码的Xml字符串,也即`Unicode编码`。 4. UTF8编码是Unicode编码的一种实现方式,以不定个数的字节来存储一个Unicode码值,支持多国语言文字。 也即,UTF8编码在编码实现上属于`多字节编码`,在编码标准上属于`Unicode编码`。 5. 人类语言中同一个的字符,如果在各种不同的标准如ANSI编码、UTF8编码、UTF16编码和UTF32编码中都存在码值, 就可以相互转换。因为各个标准下的可编码字符容量不同,部分语言字符会在一个编码标准库下存在, 而在另外一个编码标准库下不存在,这时精确的相互转换就无法执行,但是仍然有默认字符转换。 -- 6. VC语言,当定义了宏 _UNICODE 后,_T系列宏或函数,以`宽字符`承载UTF16编码。 TinyXml如何提供`宽字符`函数接口,支持解析UTF16编码、UTF32编码标准下的Xml字符串呢? 本项目: - 新增适用于`宽字符`参数的函数接口,调用字符集转换功能,转换为`窄字符`参数,再回调TinyXml原版接口。 - 对于以UTF16编码、或UTF32编码的Xml字符串,转换为UTF8编 --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值