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. luogu4301 [CQOI2013]新Nim游戏

    nim和线性基 #include <algorithm> #include <iostream> #include <cstdio> using namespace ...

  2. luogu3834 【模板】可持久化线段树 1(主席树)

    关于空间,第零棵树是 \(4n\),其后每棵树都要多来 \(\log(n)\) 的空间,所以我是开 \(n(4+\log(n))\) 的空间. 关于借用节点: 图片来自这里 #include < ...

  3. undertow的PUT参数获取问题

    今天使用undertow遇到一个问题,记录一下: 首先,maven配置如下: <dependency> <groupId>org.springframework.boot< ...

  4. MySQL 2003 [ERROR] /usr/sbin/mysqld: Incorrect key file for table './keyword_search/keyword.MYI'; try to repair it

    今天对一个有四百多万数据的表增加一个功能时,当做数据插入时,显示没有插入,到Linux的log下面查看了发现下面这条错误信息 在stacOver上面找到这句: 存储引擎(MyISAM)支持修复表.你应 ...

  5. Linux暂停和恢复进程

    Linux暂停和恢复进程 kill -STOP 1234 将该进程暂停. 如果要让它恢复到后台,用kill -CONT 1234 (很多在前台运行的程序这样是不行的) 如果要恢复到前台,请在当时运行该 ...

  6. c语言头文件以及make注意事项

    c语言头文件以及make注意事项 头文件说明:自己定义的头文件和项目文件放在一起,注意使用""而不是使用<>,系统的头文件才使用<> 当main函数要调用其 ...

  7. 【Kubernetes】离线业务:Job与CronJob

    Deployment.StatefulSet和DaemonSet这三个编排概念编排的对象主要都是在线业务(Long Running Task,这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直 ...

  8. POJ 2359 Questions

    Questions Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1228   Accepted: 449 Descript ...

  9. 新一代 javascript 模板引擎

    artTemplate-3.0 新一代 javascript 模板引擎 <!DOCTYPE html> <html lang="en"> <head& ...

  10. Mysql字符集与校对规则

    字符集是一套字符和编码的集合,校对规则是用于比较字符集的一套规则. 所以字符集有两部分组成字符集合和对应的编码集合.比如说,现在有这几个字符:A B a b, 假设它们对应的编码分别是00, 01, ...