TinyXML:TiXmlNode
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的更多相关文章
- TinyXML:一个优秀的C++ XML解析器[转]
TinyXML:一个优秀的C++ XML解析器 读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似 ...
- TinyXML:一个优秀的C++ XML解析器
//-------------------------------------------------------------------------------------------------- ...
- TinyXML:属性
TiXmlAttribute: 代表XML中的属性,TiXmlAttribute中定义了一系列对属性的操作 TiXmlAttribute的友元类: friend class TiXmlAttribut ...
- C++使用TinyXML
参照一:http://qaohao.iteye.com/blog/496237 参照二:http://hi.baidu.com/lnylvoeegzcgnrr/item/af68fd9cde40fc1 ...
- TinyXml 操作XML 常用操作
源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段: <Persons> <Perso ...
- TinyXML的使用
TinyXML TinyXML是一个简单的小型C ++ XML解析器,可以轻松集成到其他程序中. 它能做什么: 简而言之,TinyXML解析XML文档,并从可以读取,修改和保存的文档对象模型(DOM) ...
- 转:值得推荐的C/C++框架和库(真的很强大)
目录(?)[+] 值得学习的C语言开源项目 - 1 Webbench - 2 Tinyhttpd - 3 cJSON - 4 CMockery - 5 Libev - 6 Memcached - 7 ...
- [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源
原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...
- Tinyxml2学习
转自http://www.360doc.com/content/13/1223/16/3684846_339528825.shtml,尊重原文 什么是XML? XML全称EXtensible Mark ...
随机推荐
- 关于awk中NR、FNR、NF、$NF、FS、OFS的说明
一.NR和FNR 1.释义 NR: 表示当前读取的行数 FNR:当前修改了多少行 2.举例 比如现在AWK处理到第五行.第一行没有进行操作,2,3,4,5行进行了操作,那么NR=5,FNR=4 NR= ...
- spring junit4 单元测试运行正常,但是数据库并无变化
解决方案 http://blog.csdn.net/molingduzun123/article/details/49383235 原因:Spring Juint为了不污染数据,对数据的删除和更新操作 ...
- FFT-hdu题目练习
网上FFT的讲解和板子有很多,所以直接放题目 hdu1402 http://acm.hdu.edu.cn/showproblem.php?pid=1402 /* problem:大整数乘法 solut ...
- 【LeetCode】Reorder Log Files(重新排列日志文件)
这道题是LeetCode里的第937道题. 题目描述: 你有一个日志数组 logs.每条日志都是以空格分隔的字串. 对于每条日志,其第一个字为字母数字标识符.然后,要么: 标识符后面的每个字将仅由小写 ...
- Dialog共通写法(一个button)
一个button的: package jp.co.hyakujushibank.view import android.app.Dialogimport android.content.Context ...
- 【Luogu】P3856公共子串(DP)
题目链接 DP.设last[i][j]是第i个串字符'j'所在的最后的位置,f[i][j][k]是第一个串匹配到i,第二个串匹配到j,第三个串匹配到k,最多的公共子串数. 那么我们三重循环i.j.k, ...
- BZOJ 1016 [JSOI2008]最小生成树计数 ——Matrix-Tree定理
考虑从小往大加边,然后把所有联通块的生成树个数计算出来. 然后把他们缩成一个点,继续添加下一组. 最后乘法原理即可. 写起来很恶心 #include <queue> #include &l ...
- BZOJ 1026: [SCOI2009]windy数 【数位dp】
Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...
- 如何解决maven archetype加载太慢的方法
有时候在构建maven项目时,archetype加载不出来,一直在Retrieving archetype...,现象如下: 有两种解决方法: ①点击链接下载:http://files.cnblogs ...
- com.alibaba.fastjson和org.json遍历获取key
推荐都是用fastjson.org.json好像不支持序列化. com.alibaba.fastjson遍历获取key的方法: //fastjson解析方法 for (Map.Entry<Str ...