HTTPParser 解析HTML中的Table的行列 手工设定需要解析的table

来源:互联网 发布:委内瑞拉经济崩溃知乎 编辑:程序博客网 时间:2024/05/22 00:12


 public Hashtable<String, FormElements> httpParserRadioTable(String content) {
  Hashtable<String, FormElements> retHashTable = new Hashtable<String, FormElements>();
  //_advancedWirlessSettingsList.clear();

  Parser myParser;
  NodeList nodeList = null;

  myParser = Parser.createParser(content, "GBK");
  
  NodeFilter tableFilter = new NodeClassFilter(TableTag.class);
  //NodeFilter tableColumnFilter = new NodeClassFilter(TableColumn.class);
  //NodeFilter tableRowFilter = new NodeClassFilter(TableRow.class);

  OrFilter lastFilter = new OrFilter();
  lastFilter
    .setPredicates(new NodeFilter[] { tableFilter });//,tableRowFilter, tableColumnFilter });
  try {
   nodeList = myParser.parse(lastFilter);
  } catch (ParserException e) {
   return null;
   // e.printStackTrace();
  }

  Node[] nodes = nodeList.toNodeArray();
  for (int j = 0; j<nodes.length;j++)
  {
   TableTag tg = (TableTag) nodes[j];
   //  取得该table的所有行
   //System.out.println("-----------"+j);
   if(j==8)
   {
       TableRow[] tr = tg.getRows();
       //对每行内容解析
       for (int i = 1; i < tr.length; i++) {
        //取得某行的所有列
        TableColumn[] td = tr[i].getColumns();
     for (int k = 0; k < td.length; k++) {
      
      System.out.println(td[k].toPlainTextString());
     }
       }
   }
  }
  return retHashTable;
 } 

原创粉丝点击