次の「 object」ノードのうち、linkurl属性内に URL が含まれているものを見つけようとしています。linkurl 属性は、属性内にコンテンツがない場合でも常に存在します。最初のオブジェクト ノードの linkurl の最初のインスタンスが空であるかどうかを判断し、2 番目、3 番目などに移動する方法が見つからないため、運がありません。属性自体にコンテンツはありません。
これは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 ステートメントは常に空ではありません。 iflinkurl=""
であっても、まだ何かがあるからです。