discard """ output: ''' @[] true https://example.com/test?format=jpg&name=orig## https://example.com/test?format=jpg&name=orig##text https://example.com/test?format=jpg##text ''' """ import htmlparser import xmltree import strutils from streams import newStringStream block t2813: const html = """ Test ABC
A
B
A
""" var errors: seq[string] = @[] let tree = parseHtml(newStringStream(html), "test.html", errors) echo errors # Errors: expected,... var len = tree.findAll("tr").len # len = 6 var rows: seq[XmlNode] = @[] for n in tree.findAll("table"): n.findAll("tr", rows) # len = 2 break assert tree.findAll("tr").len == rows.len block t2814: ## builds the two cases below and test that ## ``//[dd,li]`` has "

that

" as children ## ##
##
this
##
##

that

##
##
## ## for ltype in [["dl","dd"], ["ul","li"]]: let desc_item = if ltype[0]=="dl": "
this
" else: "" let item = "$1<$2>

that

" % [desc_item, ltype[1]] let list = """ <$1> $2 """ % [ltype[0], item] var errors : seq[string] = @[] let parseH = parseHtml(newStringStream(list),"statichtml", errors =errors) if $parseH.findAll(ltype[1])[0].child("p") != "

that

": echo "case " & ltype[0] & " failed !" quit(2) echo "true" block t6154: let foo = """ foobar

""" var errors: seq[string] = @[] let html = parseHtml(newStringStream(foo), "statichtml", errors=errors) doAssert "statichtml(11, 18) Error: attribute value expected" in errors let ps = html.findAll("p") doAssert ps.len == 7 doAssert ps[0].attrsLen == 2 doAssert ps[0].attr("class") == "foo" doAssert ps[0].attr("id") == "bar" doassert ps[0].len == 0 doAssert ps[1].attrsLen == 1 doAssert ps[1].attr("something") == "\tfoo\tbarĀ²" doassert ps[1].len == 0 doAssert ps[2].attrsLen == 2 doAssert ps[2].attr("something") == "\tfoo\tbarĀ²" doAssert ps[2].attr("foo") == "bloo" doassert ps[2].len == 0 doAssert ps[3].attrsLen == 2 doAssert ps[3].attr("class") == "foo2" doAssert ps[3].attr("id") == "bar2" doassert ps[3].len == 0 doAssert ps[4].attrsLen == 1 doAssert ps[4].attr("wrong") == "" doAssert ps[5].attrsLen == 3 doAssert ps[5].attr("data-foo") == "" doAssert ps[5].attr("data-bar") == "correct!" doAssert ps[5].attr("enabled") == "" doassert ps[5].len == 0 doAssert ps[6].attrsLen == 2 doAssert ps[6].attr("quux") == "" doAssert ps[6].attr("whatever") == "" doassert ps[6].len == 0 # bug #11713, #1034 var content = """ # with & text # without & text """ var stream = newStringStream(content) body = parseHtml(stream) for y in body.findAll("img"): echo y.attr("src"), "##", y.attr("alt")