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文件中另设参数。
可以改变几个判断变量的设置,实现不同的遍历策略。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|