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,然后匹配出你要的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵