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

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

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

    konhon

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

    Google

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

    /*
    ?*?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( " 時間 " );
    ???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( " 風向 " );
    ???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( " 風力 " );
    ???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)華 閱讀(2225) 評論(0)  編輯  收藏

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲人成电影亚洲人成9999网| 韩日电影在线播放免费版| 亚洲日本va在线视频观看| 最新仑乱免费视频| 99re在线视频免费观看| 精品亚洲福利一区二区| 91亚洲性爱在线视频| 亚洲AV综合色区无码一区| 免费一级毛片正在播放| 拨牐拨牐x8免费| 0588影视手机免费看片| 四虎国产精品免费永久在线| 国产亚洲精品第一综合| 亚洲综合一区无码精品| 91亚洲国产在人线播放午夜| 亚洲理论电影在线观看| 亚洲人妻av伦理| 无码国产亚洲日韩国精品视频一区二区三区 | 内射干少妇亚洲69XXX| 亚洲中文字幕无码久久综合网| 国产免费小视频在线观看| 无限动漫网在线观看免费| www.免费在线观看| 99久久99热精品免费观看国产| 成全在线观看免费观看大全| 一级毛片在线播放免费| 性生大片视频免费观看一级| 色视频在线观看免费| 男人的天堂av亚洲一区2区| 亚洲无人区码一二三码区别图片| 亚洲一区二区三区在线观看蜜桃| 91亚洲国产成人久久精品| 精品亚洲成A人无码成A在线观看 | 国内精品免费在线观看| 9久热这里只有精品免费| a级毛片免费观看网站| 欧洲精品码一区二区三区免费看| jizzjizz亚洲日本少妇| 污视频网站免费在线观看| 高潮毛片无遮挡高清免费视频| 免费人成动漫在线播放r18|