0

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>

4

1 回答 1

0

如果您获得该<tbody>节点,您应该期望拥有:

<tbody id='_table_body' ><tr><td>4</td><td>5</td></tr></tbody>

而不是

<tr><td>4</td><td>5</td>

后者是元素的子节点<tbody>......不是元素本身。基本上,您的代码(使用filter)看起来像是在为您提供正确的东西。

于 2012-06-21T02:48:28.987 回答