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

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

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

    konhon

    忘掉過去,展望未來。找回自我,超越自我。
    逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因?yàn)槟硞€(gè)理由而傷心難過, 但我卻能找個(gè)理由讓自己快樂.

    Google

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks
    首先,我們新建一個(gè)類,存放天氣信息

    /*
    ?*?Created?on?2005-3-8
    ?*
    ?*?To?change?the?template?for?this?generated?file?go?to
    ?*?Window&gt;Preferences&gt;Java&gt;Code?Generation&gt;Code?and?Comments
    ?
    */
    package ?org.exoplatform.portlets.chinaweather.component;

    /**
    ?*?
    @author ?Administrator
    ?*
    ?*?To?change?the?template?for?this?generated?type?comment?go?to
    ?*?Window&gt;Preferences&gt;Java&gt;Code?Generation&gt;Code?and?Comments
    ?
    */
    public ? class ?Weather?{
    ?
    private ?String?city;
    ?
    private ?String?state;
    ?
    private ?String?temperature;
    ?
    private ?String?time;
    ?
    private ?String?wind;
    ?
    private ?String?windpower;
    ?
    private ? long ?UpdateTime;

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getTemperature()?{
    ??
    return ?temperature;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getTime()?{
    ??
    return ?time;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getWind()?{
    ??
    return ?wind;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getWindpower()?{
    ??
    return ?windpower;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setTemperature(String?string)?{
    ??temperature?
    = ?string;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setTime(String?string)?{
    ??time?
    = ?string;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setWind(String?string)?{
    ??wind?
    = ?string;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setWindpower(String?string)?{
    ??windpower?
    = ?string;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ? long ?getUpdateTime()?{
    ??
    return ?UpdateTime;
    ?}

    ?
    /**
    ??*?
    @param ?l
    ??
    */
    ?
    public ? void ?setUpdateTime( long ?l)?{
    ??UpdateTime?
    = ?l;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getState()?{
    ??
    return ?state;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setState(String?string)?{
    ??state?
    = ?string;
    ?}

    ?
    /**
    ??*?
    @return
    ??
    */
    ?
    public ?String?getCity()?{
    ??
    return ?city;
    ?}

    ?
    /**
    ??*?
    @param ?string
    ??
    */
    ?
    public ? void ?setCity(String?string)?{
    ??city?
    = ?string;
    ?}

    }


    具體的解析代碼為:

    private ?Weather?parserWeather()? throws ?Exception?{
    ??Weather?w?
    = ? new ?Weather();
    ??
    try ?{

    ???
    // Parser?parser?=
    ???
    // ?new?Parser("file: // localhost/I:/projects/query.html");
    ???Parser?parser? =
    ????
    new ?Parser( " http://weather.news.sohu.com/query.php?city=鎮(zhèn)江 " );
    ???
    ???parser.setEncoding(
    " GBK " );
    ???Node?nodes[]?
    = ?parser.extractAllNodesThatAre(TableTag. class );

    ???TableTag?table?
    = ?(TableTag)?nodes[ 3 ];
    ???
    // temperature
    ???StringNode[]?stringNodes? = ?table.digupStringNode( " 鎮(zhèn)江 " );
    ???StringNode?name?
    = ?stringNodes[ 0 ];
    ???w.setCity(name.toPlainTextString());
    ???CompositeTag?td?
    = ?(CompositeTag)?name.getParent();
    ???CompositeTag?tr?
    = ?(CompositeTag)?td.getParent();
    ???
    int ?columnNo? = ?tr.findPositionOf(td);
    ???TableColumn?nextColumn?
    = ?(TableColumn)?tr.childAt( 5 );
    ???Node?expectedName?
    = ?nextColumn.childAt( 0 );
    ???Node?expectedName2?
    = ?nextColumn.childAt( 2 );
    ???
    // System.out.println(expectedName.getText());
    ???
    // System.out.println(expectedName2.getText());
    ???w.setState(expectedName.getText());
    ???w.setTemperature(expectedName2.getText());
    ???
    // time
    ???stringNodes? = ?table.digupStringNode( " 時(shí)間 " );
    ???name?
    = ?stringNodes[ 0 ];
    ???
    // System.out.println(name.toPlainTextString());

    ???String?time?
    =
    ????name
    ?????.toPlainTextString()
    ?????.substring(
    4 ,?name.toPlainTextString().length())
    ?????.trim();
    ???
    // System.out.println(time);
    ???w.setTime(time);
    ???
    // wind
    ???stringNodes? = ?table.digupStringNode( " 風(fēng)向 " );
    ???name?
    = ?stringNodes[ 0 ];
    ???
    // System.out.println(name.toPlainTextString());

    ???String?wind?
    =
    ????name
    ?????.toPlainTextString()
    ?????.substring(
    4 ,?name.toPlainTextString().length())
    ?????.trim();
    ???
    // System.out.println(wind);
    ???w.setWind(wind);
    ???
    // wind?power
    ???stringNodes? = ?table.digupStringNode( " 風(fēng)力 " );
    ???name?
    = ?stringNodes[ 0 ];
    ???
    // System.out.println(name.toPlainTextString());

    ???String?windpower?
    =
    ????name
    ?????.toPlainTextString()
    ?????.substring(
    4 ,?name.toPlainTextString().length())
    ?????.trim();
    ???
    // System.out.println(windpower);
    ???w.setWindpower(windpower);

    ???w.setUpdateTime(System.currentTimeMillis());

    ??}?
    catch ?(ParserException?e)?{

    ???e.printStackTrace();
    ??}
    ??
    return ?w;
    ?}


    解析出來的代碼必須做緩存處理,

    private ? static ? long ?TIME_TO_LIVE? = ? 1000 ? * ? 60 ? * ? 60 ? * ? 12 ;

    ?
    private ?Weather?loadWeather()? throws ?Exception?{
    ??Weather?weather?
    = ?weather? = ?(Weather)?cache_.get( " chinaweather " );
    ??
    long ?currentTime? = ?System.currentTimeMillis();
    ??
    if ?(weather? != ? null
    ???
    && ?currentTime? < ?(weather.getUpdateTime()? + ?TIME_TO_LIVE))?{
    ???cache_.remove(
    " chinaweather " );
    ???weather?
    = ? null ;
    ??}

    ??
    if ?(weather? == ? null )?{
    ???
    synchronized ?(cache_)?{
    ????weather?
    = ?parserWeather();
    ????cache_.put(
    " chinaweather " ,?weather);
    ???}
    ??}

    ??
    return ?weather;
    ?}


    posted on 2007-03-08 06:56 konhon 優(yōu)華 閱讀(2224) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成年私人影院免费视频网站| 亚洲最大的黄色网| 午夜视频在线在免费| 久久中文字幕免费视频| 美女啪啪网站又黄又免费| 亚洲人妖女同在线播放| 亚洲AV综合色区无码另类小说| 免费成人午夜视频| 成人免费看片又大又黄| 18未年禁止免费观看| 中文在线观看免费网站| 边摸边脱吃奶边高潮视频免费| 亚洲色图激情文学| 久久夜色精品国产噜噜噜亚洲AV | 四虎永久免费影院在线| 很黄很色很刺激的视频免费| 久久国产精品一区免费下载| caoporm超免费公开视频| 亚洲国产欧美国产综合一区| 亚洲人成网站18禁止久久影院 | 免费无码专区毛片高潮喷水| 亚洲日韩精品国产3区| 亚洲人成日本在线观看| 7777久久亚洲中文字幕蜜桃 | 久久久久免费精品国产| 9i9精品国产免费久久| 免费福利在线观看| 美女被免费网站视频在线| 亚洲精品色在线网站| 色偷偷亚洲第一综合| 亚洲精品久久久久无码AV片软件| 亚洲欧美日韩综合久久久久| 日韩亚洲人成在线| 亚洲日本在线电影| 亚洲色最新高清av网站| 亚洲熟妇AV日韩熟妇在线| 亚洲欧洲无码AV不卡在线| 亚洲av综合av一区二区三区| 亚洲AV无码专区亚洲AV桃| 国产精品亚洲一区二区三区在线观看 | 亚洲AV无码一区二区三区系列|