posts - 33,  comments - 70,  trackbacks - 0
          HTMLParser 1.6

          /*
          html : html內(nèi)容
          identifier: 搜索標(biāo)識
          */

          private?Object[]?extractText(String?html,?String?identifier)
          ????????????
          throws?Exception?{
          ????????List
          <String>?resultTextList?=?new?ArrayList<String>();

          ????????Parser?parser?
          =?new?Parser();
          ????????parser.setInputHTML(html);

          ????????NodeFilter?filter?
          =?new?HasAttributeFilter("class",?identifier);
          ?/* NodeFilter?filter 就是要解析的過濾器,實(shí)現(xiàn)有好多種,我采用的屬性過濾,其他more api*/

          ????????NodeList?nodeList?
          =?parser.extractAllNodesThatMatch(filter);
          /* extractAllNodesThatAre(class)已經(jīng)不被推薦使用,在1.6版本中,我感到更加體形了靈活性.更好的適用了自定義的tag */
          ????????
          if?(nodeList?==?null)
          ????????????
          return?null;
          ????????
          if(nodeList.size()?==?0)
          ????????????
          return?null;

          ????????
          //?System.out.println("start?==============?,size?=?"
          ????????
          //?+?nodeList.size());
          ????????Node[]?nodes?=?nodeList.toNodeArray();
          ????????String?line?
          =?"";
          ????????
          for?(int?i?=?0;?i?<?nodes.length;?i++)?{
          ????????????Node?node?
          =?nodes[i];???/*得到所以符合的節(jié)點(diǎn),類型化做對應(yīng)的標(biāo)簽類*/
          ????????
          if?(node?instanceof?Span)?{
          ????????????????Span?spanTag?
          =?(Span)?node;
          ????????????????line?
          =?spanTag.toPlainTextString();
          ????????????}
          ?else?if?(node?instanceof?TableColumn)?{
          ????????????????TableColumn?tableTag?
          =?(TableColumn)?node;
          ????????????????line?
          =?tableTag.toPlainTextString();
          ????????????}
          ?else?if?(node?instanceof?Div)?{
          ????????????????Div?divTag?
          =?(Div)?node;
          ????????????????line?
          =?divTag.toPlainTextString();
          ????????????}

          ????????????
          if?(StringUtil.isTrimEmpty(line)){
          ????????????????
          continue;
          ????????????}
          else{
          ????????????????resultTextList.add(line);
          ????????????}

          ????????????
          ????????}

          ????????
          return?resultTextList.toArray();
          ????}


          StringUtil 常用類
          /**
          ?????*?去掉左右空格后字符串是否為空
          ?????
          */

          ????
          public?static?boolean?isTrimEmpty(String?astr)
          ????
          {
          ????????
          if?((null?==?astr)?||?(astr.length()?==?0))
          ????????
          {
          ????????????
          return?true;
          ????????}

          ????????
          if?(isBlank(astr.trim()))
          ????????
          {
          ????????????
          return?true;
          ????????}

          ????????
          return?false;
          ????}


          ????
          /**
          ?????*?字符串是否為空:null或者長度為0.
          ?????
          */

          ????
          public?static?boolean?isBlank(String?astr)
          ????
          {
          ????????
          if?((null?==?astr)?||?(astr.length()?==?0))
          ????????
          {
          ????????????
          return?true;
          ????????}

          ????????
          else
          ????????
          {
          ????????????
          return?false;
          ????????}

          ????}
          posted on 2006-05-22 17:30 地獄男爵(hellboys) 閱讀(2905) 評論(1)  編輯  收藏 所屬分類: 編程語言(c/c++ java python sql ......)

          FeedBack:
          # re: HTMLParser屬性解析
          2006-06-02 21:45 | libby
          想請教作者,可能是由于html的語法不規(guī)范所至,我用Htmlparser分析html文檔出現(xiàn)錯誤,像普通的Html文檔其結(jié)束標(biāo)記如果存在重復(fù),一般不予理睬,可是在用Htmlparser其會進(jìn)行處理,往往會引起一些顯示問題.
          我想利用htmlparser分析html頁面,生成一棵樹,感覺不應(yīng)該出現(xiàn)的錯誤卻出現(xiàn)了.
          作者可否跟俺取得聯(lián)系,我想同你討論一下.俺郵箱是:libby22@sohu.com或者M(jìn)SN:libby22@hotmail.com

          著急,謝謝!  回復(fù)  更多評論
            
          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          連接

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大庆市| 绥芬河市| 天祝| 陇西县| 康保县| 吉木乃县| 宁明县| 金溪县| 临洮县| 白山市| 潮安县| 昔阳县| 勃利县| 泰宁县| 贵州省| 方山县| 嫩江县| 黄山市| 和林格尔县| 贵德县| 高陵县| 高清| 绥江县| 施秉县| 正阳县| 崇左市| 太仓市| SHOW| 宁阳县| 茌平县| 任丘市| 清镇市| 乌兰浩特市| 新宁县| 徐水县| 开封市| 东方市| 峨山| 桦南县| 漯河市| 楚雄市|