string k2=k.substr(0,k.find('/')); for(vector<XMLnode*>::iterator it=walk->nodelist.begin();
std::string k2=k.substr(0,k.find('/')); for(std::vector<XMLnode*>::iterator it=walk->nodelist.begin();
static	void	xmlassign(XMLnode *walk,string &key,string &value){		// cout << "xmlassign(" << key << "," << value << ")"<<endl;		if(key.find('/')==string::npos)			{			// Must refer to me.			if(walk->entity.id==key)				{				// cout << "self-assign" << endl;				walk->entity.content=value;				return;				}			else				{				cerr << "Walking the XML tree failed to create a final node." << endl;				return;				}		}		string k;		k=key.substr(key.find('/')+1);		string k2=k.substr(0,k.find('/'));		for(vector<XMLnode*>::iterator it=walk->nodelist.begin();			it!=walk->nodelist.end();++it)			{			if((*it)->entity.id==k2)				{				xmlassign(*it,k,value);				return;				}			}		XMLnode *t = new XMLnode;		t->entity.id=k2;		walk->nodelist.push_back(t);		// cout << "New node " << k2 << endl;		vector<XMLnode*>::reverse_iterator rit=walk->nodelist.rbegin();		xmlassign(*rit,k,value);		return;}