lol_html 1.2.1

Streaming HTML rewriter/parser with CSS selector-based API
Documentation
<!DOCTYPE html><html><head>
  <title>:nth-of-type() pseudo-class with hidden elements</title>
  <style type="text/css">
  line { display: block; }
  [type~=odd] { background: lime ! important; }
  line:nth-of-type(odd) { background: red; }
  [hidden] { display: none; }
</style>
  <link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch">
  <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"> <!-- bogus link to make sure it gets found -->
  <meta name="flags" content=" namespace">
 </head>
 <body>
 <test xmlns="http://www.example.org/">
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even">This line should be unstyled.</line>
  <line type="odd" hidden="hidden"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even">This line should be unstyled.</line>
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even">This line should be unstyled.</line>
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even" hidden="hidden">This line should be unstyled.</line>
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even">This line should be unstyled.</line>
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even" hidden="hidden">This line should be unstyled.</line>
  <line type="odd" hidden="hidden"><!--Replaced (line:nth-of-type(odd)) --></line>
  <line type="even">This line should be unstyled.</line>
  <line type="odd"><!--Replaced (line:nth-of-type(odd)) --></line>
 </test>

</body></html>