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

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

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

    風(fēng)之力

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      19 Posts :: 2 Stories :: 18 Comments :: 0 Trackbacks
       無(wú)聊想寫個(gè)讀取RSS的東東,思路比較清晰:
    ⒈用ajax根據(jù)url抓取xml數(shù)據(jù);
    ⒉解析數(shù)據(jù),提取有用的信息;
    ⒊將提取出來(lái)的數(shù)據(jù)以合理的方式顯示。
    本來(lái)以為比較簡(jiǎn)單的,誰(shuí)知道在第一步就卡住了。首先,ajax存在跨域問(wèn)題,直接抓取沒(méi)有權(quán)限。那只好后臺(tái)用URL去取。
    可是抓回來(lái)的xml文件,只要有中文就是亂碼。用new(string.getByte(),"UTF-8")解碼,會(huì)出現(xiàn)中文部分亂碼。抓取代碼如下:
    簡(jiǎn)單總結(jié)問(wèn)題原因:讀取xml文件流的時(shí)候要使用相符合的編碼方式。一般xml都是用UTF-8編碼,而系統(tǒng)的默認(rèn)讀取應(yīng)該是GBK
    (簡(jiǎn)體中文)。上一點(diǎn)只是猜想:因?yàn)槲矣胣ew(string.getByte(),"UTF-8"),用的是默認(rèn)GBK讀取,可以解出部分中文。
    所以因該在讀取xml時(shí)候指定編碼,下面代碼注釋1。
    解出的代碼,如果直接傳回ajax處理,會(huì)得步到xml對(duì)象。細(xì)看下最后輸出得xml文件,發(fā)現(xiàn)最后多了一個(gè)"?"。這個(gè)問(wèn)號(hào)因該是
    用來(lái)表明xml結(jié)束的。但是dom對(duì)xml格式要求和嚴(yán)格,所以直接給回肯定是的不到responseXML.documentElement對(duì)象的。去掉后
    可以正常解析。
    ?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 風(fēng)之力 閱讀(559) 評(píng)論(0)  編輯  收藏 所屬分類: xml

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产成人精品无码一区二区| 成在线人视频免费视频| 日本高清在线免费| 亚洲视频在线免费播放| 在线日本高清免费不卡| 亚洲第一精品电影网| 亚洲大片免费观看| 亚洲入口无毒网址你懂的| 免费99精品国产自在现线| 亚洲香蕉久久一区二区| 免费黄色毛片视频| 色妞www精品视频免费看| 亚洲精品国产精品乱码不卞 | 亚洲午夜日韩高清一区| 日本视频免费观看| 国产中文在线亚洲精品官网| 国产啪精品视频网站免费尤物| 亚洲成av人影院| 2021在线观看视频精品免费| 亚洲不卡1卡2卡三卡2021麻豆| 女性无套免费网站在线看| 亚洲av无码专区在线观看亚| 日批日出水久久亚洲精品tv| av片在线观看永久免费| 婷婷亚洲久悠悠色悠在线播放| 亚洲精品在线免费观看| 亚洲AV无码国产精品永久一区| 免费又黄又硬又爽大片| 免费看男人j放进女人j免费看| 亚洲美免无码中文字幕在线| 成全视频免费高清| GOGOGO高清免费看韩国| 亚洲精品午夜视频| 亚洲AV成人精品日韩一区18p| 精品国产麻豆免费人成网站| 一个人免费观看www视频在线| 男女污污污超污视频免费在线看| 亚洲精品无码mv在线观看网站| 国国内清清草原免费视频99| 无遮挡a级毛片免费看| 久久久无码精品亚洲日韩京东传媒 |