require "../src/myhtml"
html = <<-PAGE
<div>
<p id=p1>
<p id=p2 class=jo>
<p id=p3>
<a href="some.html" id=a1>link1</a>
<a href="some.png" id=a2>link2</a>
<div id=bla>
<p id=p4 class=jo>
<p id=p5 class=bu>
<p id=p6 class=jo>
</div>
</div>
PAGE
parser = Myhtml::Parser.new(html)
p parser.css("p[id*=p]").map(&.attribute_by("id")).to_a
p parser.css("p.jo").map(&.attribute_by("id")).to_a
p parser.css(".jo").map(&.attribute_by("id")).to_a
p parser.css("div > :nth-child(2n+1):not(:has(a))").map(&.attribute_by("id")).to_a
p parser.css("div").to_a.last.css(".jo").map(&.attribute_by("id")).to_a
p parser.css(%q{a[href$=".png"]}).map(&.attribute_by("id")).to_a
p parser.css(%q{p[id=p3] > a[href*="html"]}).map(&.attribute_by("id")).to_a
p parser.css(%q{p[id=p3] > a:matches([href *= "html"], [href $= ".png"])}).map(&.attribute_by("id")).to_a
filter = Myhtml::CssFilter.new(".jo")
p parser.css(filter).map(&.attribute_by("id")).to_a