Return TypeFunction nameArguments
hzEcodehzDocHtml::FindElements(hzVect<hzHtmElem*>&,hzString&,hzString&,hzString&,)

Declared in file: hzDocument.h
Defined in file : hzDocHtml.cpp

Function Logic:

0:START 1:hzVect::Clear Lo hzMapM::Count Hi 2:htag 3:hzMapM::First Lo 4:Lo<0 5:Return E_NOTFOUND 6:hzMapM::Last Hi nIndex 7:nIndex<=Hi; 8:hzMapM::GetObj pElement bOk 9:attrName 10:ai.Valid(); 11:hzAttrset::Name anam hzAttrset::Value aval 12:anam==attrName 13:!attrValue 14:bOk 15:aval==attrValue 16:bOk 17:attrValue 18:ai.Valid(); 19:hzAttrset::Name anam hzAttrset::Value aval 20:aval==attrValue 21:bOk 22:bOk 23:hzVect::Add 24:Return E_OK

Function body:

hzEcode hzDocHtml::FindElements (hzVect<hzHtmElem*>& elements, hzString& htag, hzString& attrName, hzString& attrValue)
{
   hzHtmElem*      pElement ;
   hzAttrset       ai ;
   hzString        anam ;
   hzString        aval ;
   hzString        S ;
   hzUrl           link ;
   uint32_t        Lo ;
   uint32_t        Hi ;
   uint32_t        nIndex ;
   bool            bOk ;
   elements.Clear() ;
   Lo = 0;
   Hi = m_mapTags.Count() - 1;
   if (htag)
   {
       Lo = m_mapTags.First(htag) ;
       if (Lo < 0)
           return E_NOTFOUND ;
       Hi = m_mapTags.Last(htag) ;
   }
   for (nIndex = Lo ; nIndex <&eq; Hi ; nIndex++)
   {
       pElement = m_mapTags.GetObj(nIndex) ;
       bOk = false ;
       if (attrName)
       {
           for (ai = pElement ; ai.Valid() ; ai.Advance())
           {
               anam = ai.Name() ; aval = ai.Value() ;
               if (anam == attrName)
               {
                   if (!attrValue)
                       bOk = true ;
                   else
                   {
                       if (aval == attrValue)
                           bOk = true ;
                   }
               }
           }
       }
       else
       {
           if (attrValue)
           {
               for (ai = pElement ; ai.Valid() ; ai.Advance())
               {
                   anam = ai.Name() ; aval = ai.Value() ;
                   if (aval == attrValue)
                       bOk = true ;
               }
           }
       }
       if (bOk)
           elements.Add(pElement) ;
   }
   return E_OK ;
}