<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)航:
     
    主站蜘蛛池模板: 亚洲国产精品无码一线岛国| 久久精品国产精品亚洲下载| 99ri精品国产亚洲| 三年片免费高清版| 亚洲精品无码你懂的网站| 成人一级免费视频| 亚洲一区二区三区免费| 国产黄在线播放免费观看| 久久久久亚洲AV成人网人人网站 | 特级aaaaaaaaa毛片免费视频| 成全高清视频免费观看| 亚洲国产成人久久一区二区三区| 最近免费中文字幕大全| 亚洲av日韩精品久久久久久a| 四虎在线播放免费永久视频| 一边摸一边桶一边脱免费视频| 亚洲国产另类久久久精品黑人| 日韩免费高清播放器| 亚洲天天做日日做天天看| 四虎永久在线精品免费观看地址 | 亚洲视频一区二区三区| 成年美女黄网站18禁免费| 亚洲乱妇老熟女爽到高潮的片| 国产亚洲人成在线影院| 亚洲综合无码AV一区二区| 99久在线国内在线播放免费观看| 亚洲a级片在线观看| 在线观看免费亚洲| 日韩电影免费在线观看网站| 亚洲精品福利在线观看| 日韩人妻无码免费视频一区二区三区 | 精品亚洲国产成AV人片传媒| 四虎成人免费观看在线网址| yy一级毛片免费视频| 亚洲精品美女久久久久9999| 韩国日本好看电影免费看| 国产亚洲精品免费视频播放| 亚洲精品日韩专区silk | 亚洲成av人影院| 日韩av无码成人无码免费| 4hu四虎免费影院www|