2013-04-12 45 views
0

我試圖找到以下哪個「對象」節點在linkurl屬性中包含url。即使在屬性中沒有內容,linkurl屬性也將始終存在。我沒有任何運氣,因爲我可以;找到一種方法來確定第一個對象節點中的第一個linkurl實例是否爲空,然後繼續到第二個,然後是第三個等等。該屬性總是包含一些東西,即使屬性本身沒有內容。確定as3中的xml節點屬性是否爲空

這是XML

<object id='graphic1' active='1' url='media/00360691.swf' x='445' y='125' alt='' altfr='' altes='' tabIndex='1' layer='0' linkurl=''/> 
<object id='graphic2' active='0' url='media/00360691.swf' x='0' y='0' alt='' altfr='' altes='' tabIndex='1' layer='0' linkurl='html/AnalyticalReviewAnalysis.pdf'/> 
<object id='graphic3' active='0' url='media/00360692.swf' x='0' y='0' alt='' altfr='' altes='' tabIndex='1' layer='0' linkurl=''/> 
<object id='graphic4' active='0' url='media/00360693.swf' x='0' y='0' alt='' altfr='' altes='' tabIndex='1' layer='0' linkurl=''/> 
<object id='graphic5' active='0' url='media/' x='0' y='0' alt='' altfr='' altes='' tabIndex='1' layer='0' linkurl=''/> 
<object id='activity' active='0' url='media/' x='0' y='0'/> 

這是我到目前爲止已經試過:

if(myXML.object[7].hasOwnProperty("@linkurl")){ 
     trace("graphic 1 is not empty"); 
     linkURL = myXML.object[7].attribute("linkurl")[0]; 
} else { 
     trace("graphic 1 is empty"); 
} 

    trace("length: "+myXML.object[7].attribute("linkurl")[0].length()); 
    trace(myXML.object[7].attribute("linkurl")[0]); 

    trace("linkURL: "+ linkURL); 

這是什麼痕跡:

graphic 1 is not empty 
length: 1 

linkURL: 

長度無論是始終爲1該屬性是包含內容還是不包含內容。因此,我無法忽視空的節點,並轉向下一個節點。 if語句總是出現不是空的,因爲即使linkurl="",它仍然有一些東西。

回答

1

試試這個:

if (myXML.object[7][email protected] && myXML.object[7][email protected] != '') { 
    // linkurl contains data 
} 
else { 
    // linkurl is empty 
} 

基本上,您驗證linkurl屬性實際上是否存在(這只是避免null參考的一種良好做法),並查看該字符串是否不是空字符串。如果這是真的,你可以設置你的AS3 linkurl屬性。否則,你忽略它。

1

1的長度是正確的 - 你的xml對象中有1個linkurl屬性。

一個空字符串作爲其值的屬性仍然是一個屬性

要獲得的長度爲零,則XML不應含有linkurl =「」在所有