XML文件遍历实现中的下一节点获取函数--近似深度优先
2013-09-05 12:58
1466 查看
void CAupClass::AstNextNode(TiXmlNode *Cat)
{
if(NULL!=Cat->FirstChildElement()&&(beHindNode==Cat->PreviousSibling()||beHindNode==NULL))
//小猫下水
{
beHindNode=Cat;
handwalker=Cat->FirstChild();
}
if(Cat->NextSibling()!=NULL&&(beHindNode==Cat->PreviousSiblin)){ //小猫捉鱼
beHindNode=Cat;
handwalker=Cat->NextSibling();
}
if(Cat->NextSibling()==NULL&&Cat->PreviousSibling()==beHindNode) //小猫爬楼梯
{
beHindNode=Cat;
handwalker=Cat->Parent();
while(handwalker->NextSibling()==NULL)
{
handwalker=handwalker->Parent();
if(strcmp(handwalker->Value(),"RootNodeName")==0)
return;
}
beHindNode=handwalker;
handwalker=handwalker->NextSibling();
}
}
其中beHindNode用于记录最新的已检节点,handWalker作为结果返回,本函数可以使遍历避免重复并且无需在XML文件中另设参数。
可以改变几个判断变量的设置,实现不同的遍历策略。
{
if(NULL!=Cat->FirstChildElement()&&(beHindNode==Cat->PreviousSibling()||beHindNode==NULL))
//小猫下水
{
beHindNode=Cat;
handwalker=Cat->FirstChild();
}
if(Cat->NextSibling()!=NULL&&(beHindNode==Cat->PreviousSiblin)){ //小猫捉鱼
beHindNode=Cat;
handwalker=Cat->NextSibling();
}
if(Cat->NextSibling()==NULL&&Cat->PreviousSibling()==beHindNode) //小猫爬楼梯
{
beHindNode=Cat;
handwalker=Cat->Parent();
while(handwalker->NextSibling()==NULL)
{
handwalker=handwalker->Parent();
if(strcmp(handwalker->Value(),"RootNodeName")==0)
return;
}
beHindNode=handwalker;
handwalker=handwalker->NextSibling();
}
}
其中beHindNode用于记录最新的已检节点,handWalker作为结果返回,本函数可以使遍历避免重复并且无需在XML文件中另设参数。
可以改变几个判断变量的设置,实现不同的遍历策略。
相关文章推荐
- 二叉树的广度优先遍历、深度优先遍历的递归和非递归实现方式 二叉树的遍历方式: 1、深度优先:递归,非递归实现方式 1)先序遍历:先访问根节点,再依次访问左子树和右子树 2)中序遍
- 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架
- Domj4读取XML文件--实现获取XML文件中所有的标签节点
- 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架
- xml-使用dom去遍历xml文件和获取指定节点信息
- 二叉树的广度优先遍历、深度优先遍历的递归和非递归实现方式
- 1.实验 5.2.5 文件定位 用lseek()函数实现以下功能 1. 获取文件大小 2. 为文件添加指定长度的空洞 3. 在指定位置写入指定内容 4. 读出指定位置的内容 1. 获取文件大小
- C++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
- java实现图的遍历(深度优先遍历和广度优先遍历)
- MATLAB实现寻路、布线、迷宫的递归深度优先遍历算法_动画演示
- VBScript Sample:遍历文件夹并获取XML文件中指定内容
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- Linq 遍历获取XML节点中的信息
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- 图的理解:深度优先和广度优先遍历及其 Java 实现
- 图的深度优先遍历DFS (邻接矩阵实现) c语言
- 图的理解:深度优先和广度优先遍历及其 Java 实现
- xml 方式更新和获取 配置文件 appSettings 节点 解决办法
- (百度笔试)简要说明树的深度优先、广度优先遍历算法,及非递归实现的特点
- 图的遍历之-DFS深度优先遍历C++实现