I'm trying to parse an html page , I would get a pair of nodes from this code
 <li class="classli"> 
    <div class="element">element1</div>  
    <div class="description">description1</div> 
  </li>  
  <li class="classli"> 
    <div class="element">element2</div>  
    <div class="description">description2</div> 
  </li>  
  <li class="classli"> 
    <div class="xxxelementclass">element3</div>  
    <div class="description">description3</div> 
  </li>  
  <li class="classli"> 
    <div class="element">element4</div>  
    <div class="xxxclass">description4</div> 
  </li> 
i tried this in c# :
foreach(var node in doc.SelectNodes("//li[contains(@class,classli)]"))
{
    listelement.add(node.SelectSingleNode("//div[contains(@class,element)]").InnerText);
    listdescription(node.SelectSingleNode("//div[contains(@class,description)]").InnerText);
}
in the HTML page, not all the (li) tags contain the same subtags , I would get description and element only where both present
 
     
     
    