TiXmlNode:

对应于DOM结构中的节点,是TinyXML中很重要的一个类,它继承自TiXmlBase

TiXmlNode的友元类:

friend class TiXmlDocument;
friend class TiXmlElement;

TiXmlNode的成员函数:

virtual ~TiXmlNode();
const char *Value() const { return value.c_str (); }
const std::string& ValueStr() const { return value; }
const TIXML_STRING& ValueTStr() const { return value; }
// 返回TiXmlNode的值 void SetValue(const char * _value) { value = _value;}
void SetValue( const std::string& _value ) { value = _value; }
// 设置TiXmlNode的值 void Clear();
// 删除此节点的所有子节点 TiXmlNode* Parent() { return parent; }
const TiXmlNode* Parent() const { return parent; }
// 获取此节点的父节点 const TiXmlNode* FirstChild() const { return firstChild; }
TiXmlNode* FirstChild() { return firstChild; }
const TiXmlNode* FirstChild( const char * value ) const;
TiXmlNode* FirstChild( const char * _value );
const TiXmlNode* FirstChild( const std::string& _value ) const { return FirstChild (_value.c_str ()); } ///< STL std::string form.
TiXmlNode* FirstChild( const std::string& _value ) { return FirstChild (_value.c_str ()); } ///< STL std::string form.
// 获取此节点的第一个子节点 const TiXmlNode* LastChild() const { return lastChild; }
TiXmlNode* LastChild() { return lastChild; }
const TiXmlNode* LastChild( const char * value ) const;
TiXmlNode* LastChild( const char * _value );
const TiXmlNode* LastChild( const std::string& _value ) const { return LastChild (_value.c_str ()); } ///< STL std::string form.
TiXmlNode* LastChild( const std::string& _value ) { return LastChild (_value.c_str ()); } ///< STL std::string form.
// 获取此节点的最后一个子节点 const TiXmlNode* IterateChildren( const TiXmlNode* previous ) const;
TiXmlNode* IterateChildren( const TiXmlNode* previous );
const TiXmlNode* IterateChildren( const char * value, const TiXmlNode* previous ) const;
TiXmlNode* IterateChildren( const char * _value, const TiXmlNode* previous );
const TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) const { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form.
TiXmlNode* IterateChildren( const std::string& _value, const TiXmlNode* previous ) { return IterateChildren (_value.c_str (), previous); } ///< STL std::string form.
// 提供遍历此节点的子节点的另一种方式,while( child = parent->IterateChildren( child ) ) TiXmlNode* InsertEndChild( const TiXmlNode& addThis );
TiXmlNode* LinkEndChild( TiXmlNode* addThis );
// 插入一个新的子节点,通过引用/指针 TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis );
TiXmlNode* InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis );
// 向某个子节点前(/后)添加一个子节点 TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis );
// 替换掉某个子节点 bool RemoveChild( TiXmlNode* removeThis );
// 删除此节点的某个子节点 const TiXmlNode* PreviousSibling() const { return prev; }
TiXmlNode* PreviousSibling() { return prev; }
const TiXmlNode* PreviousSibling( const char * ) const;
TiXmlNode* PreviousSibling( const char *_prev );
const TiXmlNode* PreviousSibling( const std::string& _value ) const { return PreviousSibling (_value.c_str ()); } ///< STL std::string form.
TiXmlNode* PreviousSibling( const std::string& _value ) { return PreviousSibling (_value.c_str ()); } ///< STL std::string form.
const TiXmlNode* NextSibling( const std::string& _value) const { return NextSibling (_value.c_str ()); } ///< STL std::string form.
TiXmlNode* NextSibling( const std::string& _value) { return NextSibling (_value.c_str ()); } ///< STL std::string form.
// 前一个兄弟节点 const TiXmlNode* NextSibling() const { return next; }
TiXmlNode* NextSibling() { return next; }
const TiXmlNode* NextSibling( const char * ) const;
TiXmlNode* NextSibling( const char* _next );
// 后一个兄弟节点 const TiXmlElement* NextSiblingElement() const;
TiXmlElement* NextSiblingElement();
const TiXmlElement* NextSiblingElement( const char * ) const;
TiXmlElement* NextSiblingElement( const char *_next );
const TiXmlElement* NextSiblingElement( const std::string& _value) const { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form.
TiXmlElement* NextSiblingElement( const std::string& _value) { return NextSiblingElement (_value.c_str ()); } ///< STL std::string form.
const TiXmlElement* FirstChildElement() const;
TiXmlElement* FirstChildElement();
const TiXmlElement* FirstChildElement( const char * _value ) const;
TiXmlElement* FirstChildElement( const char * _value );
const TiXmlElement* FirstChildElement( const std::string& _value ) const { return FirstChildElement (_value.c_str ()); } ///< STL std::string form.
TiXmlElement* FirstChildElement( const std::string& _value ) { return FirstChildElement (_value.c_str ()); } ///< STL std::string form.
// Convenience function to get through elements. int Type() const { return type; }
// 返回节点类型,下面要讲到的NodeType const TiXmlDocument* GetDocument() const;
TiXmlDocument* GetDocument();
// 获取此节点所在DOM的指针 bool NoChildren() const { return !firstChild; }
// 测试此节点是否有子节点 virtual const TiXmlDocument* ToDocument() const { return ; }
virtual const TiXmlElement* ToElement() const { return ; }
virtual const TiXmlComment* ToComment() const { return ; }
virtual const TiXmlUnknown* ToUnknown() const { return ; }
virtual const TiXmlText* ToText() const { return ; }
virtual const TiXmlDeclaration* ToDeclaration() const { return ; } virtual TiXmlDocument* ToDocument() { return ; }
virtual TiXmlElement* ToElement() { return ; }
virtual TiXmlComment* ToComment() { return ; }
virtual TiXmlUnknown* ToUnknown() { return ; }
virtual TiXmlText* ToText() { return ; }
virtual TiXmlDeclaration* ToDeclaration() { return ; }
// 将Node转换为其他NodeType virtual TiXmlNode* Clone() const = ;
// 创建此节点的副本 virtual bool Accept( TiXmlVisitor* visitor ) const = ;
// 是否接受对TinyXML DOM中的节点进行层次访问

TiXmlNode的数据成员:

TiXmlNode( NodeType _type );
TiXmlNode* parent;
NodeType type; TiXmlNode* firstChild;
TiXmlNode* lastChild; TIXML_STRING value; TiXmlNode* prev;
TiXmlNode* next;

TiXmlNode中定义的NodeType:

enum NodeType
{
  TINYXML_DOCUMENT,
  TINYXML_ELEMENT,
  TINYXML_COMMENT,
  TINYXML_UNKNOWN,
  TINYXML_TEXT,
  TINYXML_DECLARATION,
  TINYXML_TYPECOUNT
};

TinyXML:TiXmlNode的更多相关文章

  1. TinyXML:一个优秀的C++ XML解析器[转]

    TinyXML:一个优秀的C++ XML解析器 读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似 ...

  2. TinyXML:一个优秀的C++ XML解析器

    //-------------------------------------------------------------------------------------------------- ...

  3. TinyXML:属性

    TiXmlAttribute: 代表XML中的属性,TiXmlAttribute中定义了一系列对属性的操作 TiXmlAttribute的友元类: friend class TiXmlAttribut ...

  4. C++使用TinyXML

    参照一:http://qaohao.iteye.com/blog/496237 参照二:http://hi.baidu.com/lnylvoeegzcgnrr/item/af68fd9cde40fc1 ...

  5. TinyXml 操作XML 常用操作

    源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段:    <Persons>        <Perso ...

  6. TinyXML的使用

    TinyXML TinyXML是一个简单的小型C ++ XML解析器,可以轻松集成到其他程序中. 它能做什么: 简而言之,TinyXML解析XML文档,并从可以读取,修改和保存的文档对象模型(DOM) ...

  7. 转:值得推荐的C/C++框架和库(真的很强大)

    目录(?)[+] 值得学习的C语言开源项目 - 1 Webbench - 2 Tinyhttpd - 3 cJSON - 4 CMockery - 5 Libev - 6 Memcached - 7 ...

  8. [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源

    原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...

  9. Tinyxml2学习

    转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...

随机推荐

  1. 00051_static关键字

    1.static概念 当在定义类的时候,类中都会有相应的属性和方法.而属性和方法都是通过创建本类对象调用的.当在调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余.可是 ...

  2. ubuntu搭建LAMP全教程

    http://jingyan.baidu.com/article/a681b0de36ad683b18434691.html 本经验向你展示如何在ubuntu14.04 环境下搭建apache2 + ...

  3. python+selenium 鼠标事件操作

    一.前言 除了可以使用 click( ) 来模拟鼠标的单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键.双击.悬停.拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封 ...

  4. SQL indexOf、lastIndexOf

    DECLARE @Name NVARCHAR (50)SET @Name = 'abcd.12345.efght' DECLARE @Position INT --sql first indexofS ...

  5. NOIP一系列模拟赛小结

    NOIP越发接近了,于是自己也跟着机房的几位师兄一起做了几次NOIP模拟赛,收获颇多. #1-T1:求点集中的点能否只用三条与坐标轴平行的直线就能全部被经过,其实只要将横纵坐标排序后逐个点检查下就行. ...

  6. BZOJ 1095 [ZJOI2007]Hide 捉迷藏 ——动态点分治

    [题目分析] 这题好基啊. 先把分治树搞出来.然后每个节点两个堆. 第一个堆保存这个块里的所有点(即分治树中的所有儿子)到分治树上的父亲的距离. 第二个堆保存分治树子树中所有儿子第一个堆的最大值. 建 ...

  7. Hibernate 笔记 HQL查询 条件查询,聚集函数,子查询,导航查询

    在hibernate中进行多表查询,每个表中各取几个字段,也就是说查询出来的结果集并没有一个实体类与之对应,如何解决这个问题? 解决方案一,按照Object[]数据取出数据,然后自己组bean 解决方 ...

  8. Garbage First介绍

    本文摘自<构建高性能的大型分布式Java应用>一书,Garbage First简称G1,它的目标是要做到尽量减少GC所导致的应用暂停的时间,让应用达到准实时的效果,同时保持JVM堆空间的利 ...

  9. 小机房的树(codevs 2370)

    题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天,他们想爬到一个节点上去搞基,但是作为两只虫子, ...

  10. 【POJ3415】Common Substrings(后缀数组,单调栈)

    题意: n<=1e5 思路: 我的做法和题解有些不同 题解是维护A的单调栈算B的贡献,反过来再做一次 我是去掉起始位置不同这个限制条件先算总方案数,再把两个串内部不合法的方案数减去 式子展开之后 ...