<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)站導航:
     
    主站蜘蛛池模板: 精品国产人成亚洲区| 永久中文字幕免费视频网站| 亚洲熟妇无码另类久久久| 男女猛烈无遮掩视频免费软件| 国产网站免费观看| 亚洲第一成年网站视频| 韩国欧洲一级毛片免费| 亚洲国产无线乱码在线观看| 韩国二级毛片免费播放| 亚洲av片在线观看| 亚洲AV网站在线观看| 一级一级一级毛片免费毛片| 久久久久一级精品亚洲国产成人综合AV区| 人碰人碰人成人免费视频| 精品国产亚洲男女在线线电影 | 狼色精品人妻在线视频免费| 可以免费观看一级毛片黄a| 人妻仑乱A级毛片免费看| 亚洲精品无码久久久久去q| 成人性生交大片免费看中文| 亚洲网站在线免费观看| 中文字幕无码不卡免费视频| 日韩色视频一区二区三区亚洲 | 亚洲日韩国产AV无码无码精品| 成人毛片18女人毛片免费96 | 亚洲欧美不卡高清在线| 又粗又硬又黄又爽的免费视频| 一级大黄美女免费播放| 亚洲αv在线精品糸列| 午夜性色一区二区三区免费不卡视频| 日本亚洲免费无线码| 亚洲人成网站在线观看青青| 日韩精品无码免费一区二区三区| 2017亚洲男人天堂一| 亚洲成a人在线看天堂无码| 国产成人AV片无码免费| 亚洲综合av一区二区三区不卡 | 免费高清小黄站在线观看| 一个人看的www在线免费视频| 亚洲A∨无码一区二区三区| 国产精品免费视频网站|