Java Blog for Alex Wan

          Let life be beautiful like summer flowers and death like autumn leaves.

          統(tǒng)計

          留言簿(10)

          BlogJava

          Blogs

          DIV+CSS

          JQuery相關(guān)

          友情鏈接

          常去的地方

          數(shù)據(jù)供應(yīng)

          閱讀排行榜

          評論排行榜

          【W(wǎng)eb Harvest】Web harvest獲取XML出現(xiàn)亂碼的解決辦法

          Web harvest獲取XML出現(xiàn)亂碼的解決辦法:

          現(xiàn)象:

          在Web harvest中使用http請求去獲取某個遠(yuǎn)程的XML,此XML的特征是無文件頭(即沒有編碼描述等關(guān)鍵信息),采用了多種辦法去獲取,出現(xiàn)亂碼,無法解析成我們需要的數(shù)據(jù)。

          辦法:

          (1)最原始辦法:使用Java中的URLConnection,InputStream等類讀取字節(jié)流,構(gòu)造字符串:

          Java代碼
          1. /**  
          2.              * 通過URL獲取XML,因為在Web harvest獲取XML時無法獲取正常編碼的XML  
          3.              */  
          4.             URL url=new URL(link);   
          5.             URLConnection connection=url.openConnection();   
          6.             InputStream in=connection.getInputStream();   
          7.             ListbyteList=new ArrayList();   
          8.             byte b=-1;   
          9.             while((b=(byte)in.read())!=-1)   
          10.             {   
          11.                 byteList.add(b);   
          12.             }   
          13.             byte[]bytes=new byte[byteList.size()];   
          14.             for(int i=0;i
          15.             {   
          16.                 bytes[i]=byteList.get(i);   
          17.             }   
          18.             /**  
          19.              * 輸出日志確認(rèn)其編碼  
          20.              */  
          21.             logger.debug(new String(bytes));   
          22.             logger.debug(new String(bytes,"utf-8"));   
          23.             logger.debug(new String(bytes,"gbk"));   
          24.             logger.debug(new String(bytes,"gb2312"));  

           

           (2)最好的辦法直接使用dom4j中的SAXReader

          Java代碼
          1. /**  
          2.              * 通過URL獲取XML,因為在Web harvest獲取XML時無法獲取正常編碼的XML  
          3.              */  
          4.             URL url=new URL(link);   
          5.             SAXReader xmlReader = new SAXReader();   
          6.             Document doc=xmlReader.read(url);  

          非常簡單,連編碼都不用管!

           

           其中:link為需要獲取XML的地址



          Let life be beautiful like summer flowers and death like autumn leaves.

          posted on 2009-02-17 15:13 Alexwan 閱讀(2363) 評論(0)  編輯  收藏 所屬分類: J2EE小筆記

          主站蜘蛛池模板: 马公市| 固镇县| 朝阳县| 萨迦县| 龙里县| 呼伦贝尔市| 丰城市| 大兴区| 中阳县| 蒙山县| 隆子县| 瓮安县| 山西省| 南开区| 五家渠市| 崇义县| 嘉鱼县| 双峰县| 蒙城县| 乌兰浩特市| 武胜县| 佛山市| 嘉鱼县| 铁岭县| 新平| 上思县| 新河县| 绥江县| 休宁县| 巫山县| 普陀区| 梅州市| 锦州市| 漳平市| 仁布县| 青铜峡市| 凭祥市| 花莲县| 赤城县| 成武县| 沅江市|