title: JSoup: Retrieve element that does not contain a specific attribute
body: <p>I have a table that contain follow logic. </p>
  
  <ol>
  <li>The table display list of names</li>
  <li>For every row that contain <code>&lt;tr class=hiderow&gt;&lt;td class=packagename&gt;...&lt;/td&gt;&lt;/tr&gt;</code> -> this row will not be visible.</li>
  </ol>
  
  <p>So the table might contain 100 rows, but if there are 20 rows contain <code>class=hiderow</code>, then the user can only see 80 rows on the page. I want to retrieve the name of those 80 rows (not 100). So I need to parse out data that does not contain <code>class=hiderow</code>. I know how to obtain every name using <code>jsoup</code>, I also see there is in the documentation 
  <code>:not(selector) elements that do not match the selector.</code> but i am not sure how to use it. Please help.</p>
  
  <p><strong>EDIT</strong> I have figure out how to do it. Please let me know if there is better way.<br>
  <strong>EDIT2</strong> Please use solution below from BalusC. It's much cleaner. </p>
  
  <pre><code>public void obtainPackageName(String urlLink) throws IOException{
      List&lt;String&gt; pdfList = new ArrayList&lt;String&gt;();
      URL url = new URL(urlLink);
      Document doc = Jsoup.parse(url, 3000);
      Element table = doc.select("table[id=mastertableid]").first();
      Iterator&lt;Element&gt; rowIter = table.select("tr").iterator();
      while(rowIter.hasNext()){
          Element row = rowIter.next();
          if(!row.className().contains("hiderow")){
              Element packageName = row.select("td[class=packagename]").first();
              if(packageName != null){
                  pdfList.add(packageName.text());
              }
  
          }
      }
  }
  </code></pre>