Re: [分享] 寫 ASP 網頁做 xml 的 Request/Response
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間14年前 (2012/03/07 23:29)推噓0(0推 0噓 0→)留言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)
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
-22
41