lol_html 1.2.1

Streaming HTML rewriter/parser with CSS selector-based API
Documentation
<html><head>
  <title>NEGATED :nth-last-child() pseudo-class</title>
  <style type="text/css">.red { background-color : red }
ul > li:not(:nth-last-child(odd)) { background-color : lime }
ol > li:not(:nth-last-child(even)) { background-color : lime }
table.t1 tr:not(:nth-last-child(-n+4)) { background-color : lime }
table.t2 td:not(:nth-last-child(3n+1)) { background-color : lime }
table.t1 td, table.t2 td { border : thin black solid }
</style>
  <link rel="author" title="Daniel Glazman" href="http://glazman.org/">
  <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"> <!-- bogus link to make sure it gets found -->
  <meta name="flags" content="">
 </head>
 <body>
<ul>
  <!--[ELEMENT('ul > li:not(:nth-last-child(odd))')]--><li class="red"><!--[TEXT('ul > li:not(:nth-last-child(odd))')]-->This first list item should have a green background<!--[/TEXT('ul > li:not(:nth-last-child(odd))')]--></li><!--[/ELEMENT('ul > li:not(:nth-last-child(odd))')]-->
  <li>Second list item</li>
  <!--[ELEMENT('ul > li:not(:nth-last-child(odd))')]--><li class="red"><!--[TEXT('ul > li:not(:nth-last-child(odd))')]-->This third list item should have a green background<!--[/TEXT('ul > li:not(:nth-last-child(odd))')]--></li><!--[/ELEMENT('ul > li:not(:nth-last-child(odd))')]-->
  <li>Fourth list item</li>
  <!--[ELEMENT('ul > li:not(:nth-last-child(odd))')]--><li class="red"><!--[TEXT('ul > li:not(:nth-last-child(odd))')]-->This fifth list item should have a green background<!--[/TEXT('ul > li:not(:nth-last-child(odd))')]--></li><!--[/ELEMENT('ul > li:not(:nth-last-child(odd))')]-->
  <li>Sixth list item</li>
</ul>
<ol>
  <li>First list item</li>
  <li class="red">This second list item should have a green background</li>
  <li>Third list item</li>
  <li class="red">This fourth list item should have a green background</li>
  <li>Fifth list item</li>
  <li class="red">This sixth list item should have a green background</li>
</ol>
<div>
<table border="1" class="t1">
  <tbody><tr class="red">
<td>Green row : 1.1</td>
<td>1.2</td>
     <td>1.3</td>
</tr>
  <tr class="red">
<td>Green row : 2.1</td>
<td>2.2</td>
     <td>2.3</td>
</tr>
  <tr>
<td>3.1</td>
<td>3.2</td>
     <td>3.3</td>
</tr>
  <tr>
<td>4.1</td>
<td>4.2</td>
      <td>4.3</td>
</tr>
  <tr>
<td>5.1</td>
<td>5.2</td>
      <td>5.3</td>
</tr>
  <tr>
<td>6.1</td>
<td>6.2</td>
      <td>6.3</td>
</tr>
</tbody></table>
<p></p>
<table class="t2" border="1">
  <tbody><tr>
<td class="red">green cell</td>
<td>1.2</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>1.5</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>1.8</td>
</tr>
  <tr>
<td class="red">green cell</td>
<td>2.2</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>2.5</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>2.8</td>
</tr>
  <tr>
<td class="red">green cell</td>
<td>3.2</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>3.5</td>
<td class="red">green cell</td>
      <td class="red">green cell</td>
<td>3.8</td>
</tr>
</tbody></table>
</div>

</body></html>