2010-02-23 68 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