<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    風之力

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      19 Posts :: 2 Stories :: 18 Comments :: 0 Trackbacks
       無聊想寫個讀取RSS的東東,思路比較清晰:
    ⒈用ajax根據url抓取xml數據;
    ⒉解析數據,提取有用的信息;
    ⒊將提取出來的數據以合理的方式顯示。
    本來以為比較簡單的,誰知道在第一步就卡住了。首先,ajax存在跨域問題,直接抓取沒有權限。那只好后臺用URL去取。
    可是抓回來的xml文件,只要有中文就是亂碼。用new(string.getByte(),"UTF-8")解碼,會出現中文部分亂碼。抓取代碼如下:
    簡單總結問題原因:讀取xml文件流的時候要使用相符合的編碼方式。一般xml都是用UTF-8編碼,而系統的默認讀取應該是GBK
    (簡體中文)。上一點只是猜想:因為我用new(string.getByte(),"UTF-8"),用的是默認GBK讀取,可以解出部分中文。
    所以因該在讀取xml時候指定編碼,下面代碼注釋1。
    解出的代碼,如果直接傳回ajax處理,會得步到xml對象。細看下最后輸出得xml文件,發現最后多了一個"?"。這個問號因該是
    用來表明xml結束的。但是dom對xml格式要求和嚴格,所以直接給回肯定是的不到responseXML.documentElement對象的。去掉后
    可以正常解析。
    ?1public?class?GetRss?extends?HttpServlet
    ?2{
    ?3????private?static?final?Logger?logger?=?Logger.getLogger(GetRss.class);
    ?4???
    ?5????protected?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException
    ?6????{
    ?7????????String?url?=?request.getParameter("RssUrl");
    ?8????????logger.info(url);
    ?9????????try
    10????????{
    11????????????URL?RssUrl?=?new?URL(url);
    12????????????InputStream?stream?=?RssUrl.openStream();
    13????????????BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(stream),"UTF-8");//1
    14????????????boolean?loop?=?true;?
    15????????????StringBuffer?sb?=?new?StringBuffer();?
    16
    17???????????
    18????????????while?(loop)?{?
    19????????????if?(?in.ready()?)?{?
    20????????????int?i=0;?
    21????????????while?(i!=?-1)?{?
    22????????????????i?=?in.read();
    23????????????????sb.append((char)i);
    24????????????}
    ?
    25????????????loop?=?false;?
    26????????????}
    ?
    27????????????}

    28????????????int?len?=?sb.length();
    29????????????String?out?=?sb.substring(0,?len-1);//2
    30????????????response.setContentType("text/xml;charset=utf-8");
    31????????????response.setHeader("Cache-Control",?"no-cache");
    32????????????
    33????????????PrintWriter?pw=new?PrintWriter(new?OutputStreamWriter(response.getOutputStream(),"UTF-8"));
    34????????????pw.write(out);
    35????????????pw.close();
    36????????}

    37????????catch?(MalformedURLException?e)
    38????????{
    39????????????
    40????????????logger.error("GetRss.execute?Error.?"?+?e.getMessage());
    41????????}

    42????????catch?(IOException?e)
    43????????{
    44????????????logger.error("GetRss.execute?Error.?"?+?e.getMessage());
    45????????}
    ?????
    46????}

    47
    48}

    posted on 2006-10-20 20:09 風之力 閱讀(559) 評論(0)  編輯  收藏 所屬分類: xml

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成av人片在线天堂无| 亚洲国产精品成人久久| 激情综合亚洲色婷婷五月APP| 免费精品无码AV片在线观看| 国产亚洲精品无码成人| 你懂的免费在线观看| 亚洲性猛交XXXX| 免费精品久久天干天干| 亚洲成AV人片在| 84pao国产成视频免费播放| 亚洲精品中文字幕无码AV| 国产精品视频免费观看| 亚洲精品一二三区| 国产高清免费在线| 永久免费观看黄网站| 亚洲自偷自偷偷色无码中文| 美女视频黄的免费视频网页| 亚洲视频在线免费播放| 最近免费中文字幕视频高清在线看| 亚洲精品无码久久久久牙蜜区| 国产一级高清免费观看| 中文字幕a∨在线乱码免费看 | 一道本不卡免费视频| 国产aⅴ无码专区亚洲av麻豆 | 国产a级特黄的片子视频免费| 一级毛片**免费看试看20分钟 | 成人免费无码大片a毛片软件| 色偷偷亚洲男人天堂| 亚洲乱亚洲乱妇无码麻豆| 国产电影午夜成年免费视频| 色窝窝亚洲AV网在线观看| 综合亚洲伊人午夜网 | 久久免费国产视频| 色在线亚洲视频www| 亚洲精品无码日韩国产不卡?V| 男的把j放进女人下面视频免费| 亚洲一区二区三区在线观看蜜桃 | 亚洲AV午夜成人影院老师机影院| 999在线视频精品免费播放观看| 国产精品亚洲а∨无码播放麻豆| 亚洲国产精品一区二区第一页|