2010-02-23 70 views
0

我今天的問題涉及檢查特定節點的XML文件。如何運行if/else語句來檢查XML節點是否爲空?

例子:

<vid 
flv="videoName" 
thumb="thumbnail.jpg" 
title="Video Title" 
logo="Path to logo here"> 
</vid> 

<vid 
flv="videoName" 
thumb="thumbnail.jpg" 
title="Video Title" 
</vid> 

第一VID節點包含一個標誌圖形的路徑,然後我需要在我的ActionScript檢查是否有標誌存在與否,以及做一些事情,如果有(顯示標誌)

現在下面是我需要幫助的代碼,我可以描繪出標識路徑,所以我想我可以運行一個簡單的if/else檢查,如果存在這樣的節點什麼,如果這樣做東西:

private function thumbOver(e:MouseEvent = null):void 
{ 
trace("\r"); 
trace("YOU ROLLED OVER THUMBNAIL: " + e.target.id); 
trace("PLAY THIS VIDEO: " + tabData[tabID].video[e.target.id][email protected]); 
trace("THE VIDEO TITLE: " + tabData[tabID].video[e.target.id][email protected]); 
trace("HAS LOGO? " + tabData[tabID].video[e.target.id][email protected]); 

if (tabData[tabID].video[e.target.id][email protected] == null) 
{ 
    trace("No logo here"); 
      // Don't do anything 
} else { 
    trace("Does have Logo"); 
      // Code to display Logo 
} 

    /*var lgo:Bitmap = loader.getBitmap(tabData[tabID].video[e.target.id][email protected]); 
    lgo.width = 78; 
    lgo.height = 44; 
    lgo.x = 0; 

    logoPlace.addChild(lgo); 
    thumbRollmc.addChild(logoPlace);*/ 

descriptionMaker(tabData[tabID].video[e.target.id][email protected]); 
} 

現在我已經試過了所有的東西,但無論我做什麼,它總是會記錄「有標識」。我想:

if (tabData[tabID].video[e.target.id][email protected] == "") 

if (tabData[tabID].video[e.target.id][email protected] == null) 

但是我得到相同的結果,我應該我的方法解決這個問題呢?

回答

2
if (tabData[tabID].video[e.target.id].hasOwnProperty("@logo")) 
+0

OMG謝謝你! :D我沒有那麼好的經文與所有的XML語法...我喜歡這個網站! – 2010-02-23 20:45:49

+1

hasOwnProperty是Flash Object類的一個方法,所以你幾乎可以在任何類上使用它。非常便利。 – typeoneerror 2010-02-23 20:57:55

+0

很高興再次感謝:) – 2010-02-23 22:42:06