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

          /*
          html : html內容
          identifier: 搜索標識
          */

          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 就是要解析的過濾器,實現有好多種,我采用的屬性過濾,其他more api*/

          ????????NodeList?nodeList?
          =?parser.extractAllNodesThatMatch(filter);
          /* extractAllNodesThatAre(class)已經不被推薦使用,在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];???/*得到所以符合的節點,類型化做對應的標簽類*/
          ????????
          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) 閱讀(2900) 評論(1)  編輯  收藏 所屬分類: 編程語言(c/c++ java python sql ......)

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

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

          常用鏈接

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          連接

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长沙县| 金秀| 富裕县| 德江县| 南丹县| 马公市| 女性| 天祝| 井陉县| 闽清县| 福鼎市| 宜州市| 建阳市| 锡林郭勒盟| 安溪县| 宣化县| 拉萨市| 永丰县| 怀柔区| 武义县| 怀集县| 寿宁县| 四会市| 庆城县| 泌阳县| 曲靖市| 靖远县| 海门市| 新野县| 富源县| 贺州市| 吐鲁番市| 南陵县| 黄山市| 锡林浩特市| 鄂托克前旗| 教育| 三亚市| 兖州市| 枝江市| 锡林浩特市|