hellosearchengine
2010-12-31 19:02
浏览 235
已采纳

高手帮助! HTMLParser懂得大侠进!

给这2个表格,如何过滤出指定的TD 表格内容项。我想根据td_num得到指定的td_value。因为标签属性都一样,所以有些困难。比如,我只想要第一个表格的td_value2和第二个表格的td_value6。如何根据td_num得到td_value呢???
请高手给出代码,最好用filter方法遍历节点访问内容。
代码好的,我会追加分!!!
[code="java"]

FN ISI Export Format
VR 1.0













td_1 td_value1
td_2 td_value2
td_3 td_value3

FN ISI Export Format
VR 1.0

















td_4 td_value4
td_5 td_value5
td_6 td_value6
td_7 td_value7
[/code]
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • jiangguangxian 2011-01-01 17:55
    已采纳

    [code="java"]
    import org.htmlparser.Node;
    import org.htmlparser.Parser;
    import org.htmlparser.filters.RegexFilter;
    import org.htmlparser.util.NodeIterator;
    import org.htmlparser.util.NodeList;
    import org.htmlparser.util.ParserException;
    public class HTMLParserMain {

    public static void main(String [] args)
    {
        String htmlPath = "D:\\test.html";
        try {
             String reg = "[2,6]";
             Parser parser = new Parser(htmlPath);
             RegexFilter filter = new RegexFilter ("td_"+reg+"{1,}");
             NodeIterator iterator = parser.extractAllNodesThatMatch (filter).elements ();
             Node node;
             Node np;
             NodeList nlist;
             while(iterator.hasMoreNodes()){
                 node = iterator.nextNode();
                 nlist =  
                     node
                     .getParent()
                     .getParent()
                     .getChildren();
                 System.out.println(nlist.elementAt(3).toPlainTextString());
             }
    
        } catch (ParserException e) {
            e.printStackTrace();
        }
    }
    

    }
    [/code]

    反正用RegexFilter,可以这么来做,应该不算很好的方法,但是是个可行的方法,可以根据你给的number生成regex,然后匹配出你要的值

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题