[英]Determine if xml node attribute is empty in as3
我試圖找到以下哪個“ 對象 ”節點包含linkurl屬性中的url。 即使屬性中沒有內容,linkurl屬性也將始終存在。 我沒有運氣,因為我可以找到一種方法來確定第一個對象節點中第一個linkurl實例是否為空,然后繼續前進到第二個然后是第三個等等。該屬性總是包含一些內容,即使屬性本身沒有內容。
這是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是正確的 - 您的xml對象中有1個linkurl屬性。
具有空字符串作為其值的屬性仍然是屬性
要獲得零長度,xml根本不應包含linkurl =''
嘗試這個:
if ( myXML.object[7].@linkurl && myXML.object[7].@linkurl != '' ) {
// linkurl contains data
}
else {
// linkurl is empty
}
基本上你驗證linkurl屬性實際存在(這只是避免空引用的一個好習慣)並查看字符串是否不是空字符串。 如果是這樣,您可以設置AS3 linkurl屬性。 否則,你忽略它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.