在org.htmlparser
我想通过tbody
id
个节点
Parser htmlParser = Parser.createParser("<table id='_table' border='0' cellspacing='0' cellpadding='0' class='tableRegion' width='100%' ><thead><tr><td>1</td><td>2</td></tr></thead><tbody id='_table_body' ><tr><td>4</td><td>5</td></tr></tbody></table>","gbk");
NodeFilter filter = new HasAttributeFilter("id", "_table_body");
NodeFilter f = new AndFilter(new TagNameFilter("tr"), new HasParentFilter(filter));
NodeList nodelist1 = htmlParser.parse(filter); //Tag (144[0,144],173[0,173]): tbody id='_table_body'
NodeList nodelist2 = htmlParser.parse(f); //
为什么nodelist1
没有阅读<tr><td>4</td><td>5</td></tr>
?
答案 0 :(得分:0)
如果你得到<tbody>
节点,你应该期望:
<tbody id='_table_body' ><tr><td>4</td><td>5</td></tr></tbody>
而不是
<tr><td>4</td><td>5</td>
后者是<tbody>
元素的子节点...而不是元素本身。基本上,您的代码(使用filter
)看起来像是在为您提供正确的东西。