CMarkupTag* CMarkupTag::GetTagFromIndex(char* szTagName, STagIterator* psIter) { CMarkupBase* pcBase; CMarkupTag* pcTag; CMarkupRefDoc* pcRefDoc; int i; int iIndex; iIndex = psIter->iIndex +1; for (i = iIndex; i < macBases.NumElements(); i++) { pcBase = *(macBases.Get(i)); if (pcBase->IsTag()) { pcTag = (CMarkupTag*)pcBase; if (pcTag->Is(szTagName)) { psIter->iIndex = i; psIter->mpcCurrent = pcTag; return pcTag; } } else if (pcBase->IsRefDoc()) { pcRefDoc = (CMarkupRefDoc*)pcBase; if (pcRefDoc->Is(szTagName)) { pcTag = pcRefDoc->GetRootTag(); psIter->iIndex = i; psIter->mpcCurrent = pcTag; return pcTag; } } } return NULL; }