Re: [分享] 寫 ASP 網頁做 xml 的 Request/Response

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間14年前 (2012/03/07 23:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
再來是應用實例。底下是透過搜尋找到的網頁 http://www.wretch.cc/blog/jesssam8726/14283586 <% Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") //安裝IIS就能啟用 objXML.open "GET","http://tw.news.yahoo.com/rss/politics",false //設定呼叫某站台的XML文件之參數 objXML.send() //送出呼叫 ' 上面 send() 的意思代表只要有 send 的動作就行了 ' server 端收到這信號就會 response xml 資料回來 Set xmlDoc = CreateObject("Microsoft.XMLDOM") //安裝IIS就能啟用 ' 這跟 MSXML2.DOMDocument 是類似的物件 xmlDoc.LoadXml(objXML.responseXML.xml) //取得剛剛呼叫的文件資料 ' 這跟 loadXML(objXML.ResponseText) 也類似 ************************* 奇摩XML格式 <rss> <channel> <title> ......... . <image> ------------------------------- 下面tag才是每條新聞的內容 <item> <title> <link> <guid > <pubDate> ************************* //以下開始尋找XML的節點(selectSingleNode尋找單一節點,selectSingleNode可以傳回一搜尋結果陣列) Set xml_node = xmlDoc.selectSingleNode("rss") //先找到rss這個節點 Set xml_node2 = xml_node.selectSingleNode("channel") //接下來是channel ' 所以它也是一層一層往下找 Set xml_subNodes = xml_node2.selectNodes("item")//找到item ' 然後把 "item" 部份整個撈出來 For i = 0 To xml_subNodes.length - 1 //for迴圈列印出每條新聞title Set xml_subnextNode = xml_subNodes(i).selectSingleNode("title") ' 然後把 title 單獨搜集起來 response.write xml_subnextNode.nodeTypedValue & " " next %> 這裡產生一個問題,就是假若你不知道 server 端回給你的 xml 的「結構」,那要如何取得這個 xml 裡面的各個標籤呢 個人土法煉鋼的方法如下.. set xmlDocAll = xmlDoc.documentElement set rootnames = xmlDocAll.nodeName 這樣即取得 rootnames。 接著,再去撈 <根標籤> ... </根標籤> 之間的東西 set xmlDoc1 = xmlDoc.SelectSingleNode("根標籤") for i = 0 to xmlDoc1.length - 1 set xmlDocItem = xmlDoc1.item(i) response.write xmlDocItem.nodeName Next i 這樣就可以把根標籤底下包含的子標籤秀出來,然後重覆上 述步驟,... 而這個只需做一次,因為當你完全瞭解對方會傳什麼 xml資 料回來後,程式就可以改寫為較簡單的讀取方式了。 附帶一提,上面的程式使用的是「政治類新聞」的 RSS,其 它類的列表在底下的網址 http://tw.info.yahoo.com/rss/ 將游標移到對映的 RSS 標籤即可看到相對的 RSS 網址 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.7.33 ※ 編輯: laechan 來自: 122.117.7.33 (03/07 23:32)
文章代碼(AID): #1FLtxsK7 (mud_sanc)
文章代碼(AID): #1FLtxsK7 (mud_sanc)