[心得] 在XML中尋找一個特定的節點
演算法簡介:
find(節點 , 標籤)
{
if(節點名稱不是標籤)
{
if(節點有孩子)
結果節點 = find(孩子節點 , 標籤)
if(節點有兄弟)
結果節點 = find(兄弟節點 , 標籤)
if(結果節點不是 null)
return 結果節點
else
return null
}
else
return 節點
}
可以說是用DFS(深度優先搜尋法)的概念
AS程式碼:
//找body
function find(thisNode , tagName)
{
var Node:XMLNode;
if(thisNode.nodeName != tagName)
{
if(thisNode.firstChild != null)
Node = find(thisNode.firstChild,tagName);
if(thisNode.nextSibling != null)
Node = find(thisNode.nextSibling,tagName);
if(Node != null)
return Node;
else
return null;
}
else
return thisNode;
}
實際用法:
//建立一XML,並擷取某網站中body部分的資料
var myHTML:XML = new XML();
myHTML.ignoreWhite = true;
myHTML.onLoad = function(success) {
var myXML:XML = find(this,"body");
}
var url = "http://tw.yahoo.com/"
myHTML.load(url);
功能:
1.分析HTML,從外部網站擷取資料
2.可以作巢狀擷取
舉例:
1.可以做到網路蜘蛛的功能
(找到 a 標籤,再查他的 href 去 load 找到的 url)
2.如果搜尋的不是節點名稱,而是節點中所有屬性的值
則可能從氣象局擷取某地氣溫資料,或其他網站中的資料
本篇文章重點:
1.HTML可以當成XML來讀取
2.從外部網站擷取資料的方法
--
blog:http://etrex.blogspot.com/
site:http://web.ntust.edu.tw/~B9409041/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.120.112.85
※ 編輯: etrexetrex 來自: 122.120.112.85 (04/23 20:53)
※ 編輯: etrexetrex 來自: 122.120.112.85 (04/23 20:54)
→
04/23 20:57, , 1F
04/23 20:57, 1F
推
04/23 20:58, , 2F
04/23 20:58, 2F
→
04/23 21:00, , 3F
04/23 21:00, 3F
→
04/23 21:01, , 4F
04/23 21:01, 4F
推
04/23 21:04, , 5F
04/23 21:04, 5F
→
04/23 21:04, , 6F
04/23 21:04, 6F
→
04/23 21:04, , 7F
04/23 21:04, 7F
→
04/23 21:05, , 8F
04/23 21:05, 8F
→
04/23 21:05, , 9F
04/23 21:05, 9F
→
04/23 21:06, , 10F
04/23 21:06, 10F
→
04/23 21:07, , 11F
04/23 21:07, 11F
推
04/23 22:16, , 12F
04/23 22:16, 12F
推
04/23 22:17, , 13F
04/23 22:17, 13F
推
04/23 22:20, , 14F
04/23 22:20, 14F
→
04/23 22:20, , 15F
04/23 22:20, 15F
推
04/23 22:23, , 16F
04/23 22:23, 16F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
6
16
Flash 近期熱門文章
PTT數位生活區 即時熱門文章