Merge branch 'rgv151-patch-2' into devel

This commit is contained in:
Dominik Picheta 2015-06-20 11:37:50 +01:00
commit ec06ed6037
2 changed files with 95 additions and 49 deletions

View file

@ -423,6 +423,7 @@ proc toHtmlTag(s: string): HtmlTag =
of "wbr": tagWbr of "wbr": tagWbr
else: tagUnknown else: tagUnknown
proc htmlTag*(n: XmlNode): HtmlTag = proc htmlTag*(n: XmlNode): HtmlTag =
## gets `n`'s tag as a ``HtmlTag``. ## gets `n`'s tag as a ``HtmlTag``.
if n.clientData == 0: if n.clientData == 0:
@ -469,7 +470,7 @@ proc untilElementEnd(x: var XmlParser, result: XmlNode,
tagOption}: tagOption}:
errors.add(expected(x, result)) errors.add(expected(x, result))
break break
of tagTd, tagTh, tagTfoot, tagThead: of tagTd, tagTh:
if htmlTag(x.elemName) in {tagTr, tagTd, tagTh, tagTfoot, tagThead}: if htmlTag(x.elemName) in {tagTr, tagTd, tagTh, tagTfoot, tagThead}:
errors.add(expected(x, result)) errors.add(expected(x, result))
break break

View file

@ -0,0 +1,45 @@
discard """
output: "@[]"
"""
import htmlparser
import xmltree
from streams import newStringStream
const
html = """
<html>
<head>
<title>Test</title>
</head>
<body>
<table>
<thead>
<tr><td>A</td></tr>
<tr><td>B</td></tr>
</thead>
<tbody>
<tr><td></td>A<td></td></tr>
<tr><td></td>B<td></td></tr>
<tr><td></td>C<td></td></tr>
</tbody>
<tfoot>
<tr><td>A</td></tr>
</tfoot>
</table>
</body>
</html>
"""
var errors: seq[string] = @[]
let tree = parseHtml(newStringStream(html), "test.html", errors)
echo errors # Errors: </thead> 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