加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML文件遍历实现中的下一节点获取函数--近似深度优先

发布时间:2020-12-15 23:27:30 所属栏目:百科 来源:网络整理
导读: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-Pre

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文件中另设参数。

可以改变几个判断变量的设置,实现不同的遍历策略。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读