政策情報学部 渡辺恭人 - 千葉商科大学riho-m/rg10/pdf/20100427_webapp2.pdf2010/04/27...
TRANSCRIPT
-
政策情報学部
渡辺恭人
-
作業①:前回分を少し改造 1行目のplace = “那覇”の「那覇」の部分を他の地名に変えてみる。
南西諸島地域以外の場合は、2行目も変更する必要がある。 xmlFile =
http://weather.livedoor.com/forecast/rss/amedas/temp/10/47.xml
http://weather.livedoor.com/weather_hacks/rss_feed_list.htmlを参照する
気温をクリック
メニューバーの「表示」⇒「ソース」をクリックして確認
2
-
別のサンプル もう少し凝った表示にする
文字のサイズを大きくする
文字に色をつける
背景色を設定する
日時も表示する
ブラウザの機能を利用する
HTA(HyperText Applications)化する。
クリックすると再読み込み
3
-
サンプル
4
今の気温は?
Call Window.ResizeTo(250,120+30)
place = "船橋"Sub Window_onload
'処理準備xmlFile =
"http://weather.livedoor.com/forecast/rss/amedas/temp/3/12.xml"
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
returnCode = xmlDoc.Load(xmlFile)
If returnCode = False Then
MsgBox("読み込みエラー")Else
Call xmlDoc.setProperty("SelectionLanguage","XPath")
-
サンプル
5
'データ取得Set titleNodes =
xmlDoc.selectNodes("//item[title=contains(title,'"&place&"')]/title")
'整形line = titleNodes(0).text
If line = "" Or titleNodes.length > 1 Then
line = "エラー"Else
pointer = InStr(line, "]")
Document.title = Left(line, pointer)
line = Right(line, Len(line)-pointer)
nowtime.innerHTML = Date & " " & Time
End If
'出力処理cont.innerHTML = line
End If
End Sub
-
6
Sub cont_onClick
location.reload()
End Sub
body {background-color:#808080}
div#cont {font-size:60px;font-weight:bold;color:#ffff6a;text-
align:center;cursor:hand}
div#nowtime {color:#FFF;text-align:right}
-
作業② sample5.htaを書き換えて、別の場所の気温が表示できるようにする
まず、http://weather.livedoor.com/weather_hacks/rss_feed_list.html を見て、見たい地方の気温のRSSファイルへのリンクを取得する
place = ”船橋” を変更
7
-
応用 天気予報Webクライアントを作る 表示はシンプル
天気を示す画像も加える
元になる情報の場所(東京の場合) http://weather.livedoor.com/forecast/rss/13/63.xml
他の地域も、http://weather.livedoor.com/weather_hacks/rss_feed_list.htmlから選べる
8
-
RSSの中身
9
-
ポイント 天気予報だから、翌日(明日)の情報を取得したい
①「明日の日付」を文字列で作成
②明日の日付に対応した”item/title”の行を探す。
”item/title”のitem下にあるdescriptionを天気予報の文章として抜き出す
”item/title”のitem下にあるimage/urlのGIF画像URLを抜き出して、天気画像とする
10
-
①「明日の日付」を文字列で作成 VBScriptで作成 nextDate = DateAdd("d",1,Date) 今日の日付の「日」に1を加える
tomorrow = MonthName(Month(nextDate))&Day(nextDate)&"日("&WeekdayName(Weekday(nextDate),True)&")“ 明日の日付の文字列をMonthName関数とDay関数と
WeekdayName関数の出力をつないで作成
11
-
②明日の日付に対応した”item/title”の行を探す ”item/title”のitem下にあるdescriptionを天気予報の文章として抜き出す Set descriptNodes =
xmlDoc.selectNodes("//item[title=contains(title,'"&tomorrow&"')]/description")
”item/title”のitem下にあるimage/urlのGIF画像URLを抜き出して、天気画像とする Set imgNode =
xmlDoc.selectNodes("//item[title=contains(title,'"&tomorrow&"')]/image/url")
12
-
プログラム
13
明日の天気
Call Window.ResizeTo(200,150+30)
nextDate = DateAdd("d",1,Date)
tomorrow = MonthName(Month(nextDate))&Day(nextDate)&"日("&WeekdayName(Weekday(nextDate),True)&")"
-
プログラム
14
Sub Window_onload
'処理準備xmlFile = "http://weather.livedoor.com/forecast/rss/13/63.xml" '東京Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
returnCode = xmlDoc.Load(xmlFile)
If returnCode = False Then
MsgBox("読み込みエラー")Else
Call xmlDoc.setProperty("SelectionLanguage","XPath")
'データ取得Set descriptNodes =
xmlDoc.selectNodes("//item[title=contains(title,'"&tomorrow&"')]/description
")
Set imgNode =
xmlDoc.selectNodes("//item[title=contains(title,'"&tomorrow&"')]/image/url")
-
プログラム
15
'整形line = descriptNodes(0).text
If line = "" Or descriptNodes.length > 1 Then
line = "エラー"Else
line = "明日、" & lineEnd If
'出力処理cont.innerHTML = line
mark.src = imgNode(0).text
End If
End Sub
-
プログラム
16
Sub cont_onClick
location.reload()
End Sub
-
作業③ sample6.htaを書き換えて、別の場所の気温が表示できるようにする
まず、http://weather.livedoor.com/weather_hacks/rss_feed_list.html を見て、見たい地方の気温のRSSファイルへのリンクを取得する
xmlFile = "http://weather.livedoor.com/forecast/rss/13/63.xml" を変更
17