今天早上瑋瑋吃完早餐就開始上吐下瀉,晚上瑋瑋吃完飯就躺在床上休息了,在瑋瑋睡著了後,我突然發現擁有了近年來在家中難得有的清靜時光(雖然約只有兩個小時,馬上用力的寫了這個應用範例),因為我總是時時跟瑋瑋父子倆在"煉肖為"(瑋瑋剛被媽媽叫起來洗澡,現在又生龍活虎的在彈他的電鋼琴了)
其實我寫程式是很狂野的(?????),以前假如要解析XML中的資訊,我會把XML直接全部讀出,然後自己寫程式去把所需的資訊擷取出來。不過有時我也想要走一下文青的路線(?????),所以今天這個例子是使用Linq to XML的方式把XML中所需資訊抓取出來
原本寫好要給學生參考的是VB.Net Console程式,不過由於氣象局的XML資料中包含有影像的連結,用ASP.Net來寫會比較方便,所以我又把原來的程式改用ASP.Net來寫
畫面的設計很單純,就是一開始載入XML檔案抓取地震報告中的摘要資訊顯示,以及使用兩個Image控制項顯示地震報告中所指出的連結圖片,由於底下會用下拉式選單讓使用者選擇查看的區域,所以在網頁載入時也順便將XML中的區域資訊加到下拉式選單中(提示:記得使用IsPostBack檢查,以免選單內容重覆加入,若是不了解PostBack的意思,可參考ASP.NET網頁程式設計[全華,張峻彬著],P7-2~P7-5有說明)
在畫面的下方有安排兩個下拉式選單,一個是讓使用者選區域,一個讓使用者選擇觀測站感測的數值與震波圖片
第一個按鈕按了之後,會把XML中選定區域的最大震度顯示出,並把所有觀測站名稱動態地放到第二個下拉式選單中(提示:記得使用每次要動態地加入選單內容時先清除選單內容,以免選單內容重覆加入,不知如何清除選單內容,,可參考ASP.NET網頁程式設計[全華,張峻彬著],P5-24有關於ListControl的清除說明。還有此時由於按鈕會觸發PostBack的動作,所以可以把篩選出的區域觀測站所有資訊放到Session變數中,以免PostBack後資料消失,若是不了解Session變數的使用,可參考ASP.NET網頁程式設計[全華,張峻彬著],P7-30~P7-34有說明)
接下來在第一個按鈕按了之後,會把使用者選定的觀測站相關資訊由Session變數中取出,在畫面上顯示相關資訊與震波圖(提示:由於XML觀測站的資訊有的並不完整,為避免取不到特定資訊而發生錯誤,可以採用Try Catch結構)
嘿嘿,搞定!