簡體   English   中英

確定as3中的xml節點屬性是否為空

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM