如何运行if / else语句来检查XML节点是否为空?

时间:2010-02-23 20:38:58

标签: xml flash actionscript-3 if-statement

我今天的问题涉及检查特定节点的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].@flv);
trace("THE VIDEO TITLE: " + tabData[tabID].video[e.target.id].@title);
trace("HAS LOGO? " + tabData[tabID].video[e.target.id].@logo);

if (tabData[tabID].video[e.target.id].@logo == 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].@logo);
    lgo.width  = 78;
    lgo.height = 44;
    lgo.x = 0;

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

descriptionMaker(tabData[tabID].video[e.target.id].@title);
}

现在我已经尝试了所有的东西,但无论我做什么,它总会追溯到“有徽标”。我试过了:

 if (tabData[tabID].video[e.target.id].@logo == "")

 if (tabData[tabID].video[e.target.id].@logo == null)

但是我得到了相同的结果,我应该对这个问题采取什么方法呢?

1 个答案:

答案 0 :(得分:2)

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