2010-12-02 20 views
8

मैं यह जांचना चाहता हूं कि प्रत्येक बच्चे के लिए इस संरचना में तत्व मौजूद है या नहीं। समस्या यह है कि बच्चों के पास समान नाम (उत्पाद, प्रीपेक) नहीं है और मैं ऑर्डर बदलना नहीं चाहता हूं। इसके अतिरिक्त मैं एक्सएमएल संरचना नहीं बदल सकता।as3 xml जांचें कि तत्व मौजूद है

<items> 
    <product> 
     <resourceImages> 
      <image /> 
     </resourceImages> 
    </product> 
    <product> 
     <resourceImages> 
      <image /> 
     </resourceImages> 
    </product> 
    <prepack> 
     <resourceImages /> 
    </prepack> 
    <product> 
     <resourceImages> 
      <image /> 
     </resourceImages> 
    </product> 
    <prepack> 
     <resourceImages /> 
    </prepack> 
</items> 
+1

कौन सा तत्व? हो सकता है कि आप जो हासिल करना चाहते हैं उसका एक उदाहरण बेहतर होगा – Patrick

उत्तर

7

इस तरह?

for each(var item : XML in xmlData.children()) 
{ 
    var hasImages : Boolean = (item.resourceImages.children().length() > 0); 

    if(hasImages) 
     trace("item has images") 
} 
+0

मैंने उदाहरण बदल दिया है। मुझे इन लूप को लूप में चलाने की ज़रूरत है। क्या आप एक उदाहरण दे सकते हैं? – chchrist

+0

आप किस तत्व को देखना चाहते हैं? छवि? – Mattias

+0

हाँ यदि छवि तत्व मौजूद है तो मुझे लूप के लिए जांच करने की आवश्यकता है। लेकिन मुझे नहीं पता कि लंबाई कैसे प्राप्त करें() – chchrist

6

भी निर्भर करता है कि कैसे अपनी पहली पाश है, लेकिन आप भी अगर नोड undefined नहीं है की जाँच कर सकते हैं:

var xml:XML=<items> 
    <product> 
     <resourceImages> 
      <image /> 
     </resourceImages> 
    </product> 
    <product> 
     <resourceImages> 
      <image /> 
     </resourceImages> 
    </product> 
    <prepack> 
     <resourceImages /> 
    </prepack> 
    <product> 
     <resourceImages> 
      <image /> 
      <image /> 
     </resourceImages> 
    </product> 
    <prepack> 
     <resourceImages /> 
    </prepack> 
</items>; 

//loop on all all resourceImage node 
for each (var resourceImageXML:XML in xml..resourceImages){ 
    // and check if node if defined 
    if (resourceImageXML.image != undefined) { 
     // ok node have image 
    } 
} 
+1

xml..resourceImages के उपयोग के लिए उपरोक्त :-) –

+0

@ टिम कीटिंग धन्यवाद – Patrick

10

ऐसा प्रतीत होता है वहाँ दो तरीके हैं, लेकिन अपरिभाषित का उपयोग कर जांच बेहतर लगता है।

if (item.image.length() > 0) 

या

if (item.image != undefined) 

लेकिन सावधान रहना, यह हमेशा परवाह किए बिना सही का आकलन करता है, तो नोड मौजूद है।

if (item.image) 

जो अनिर्धारित चेक पर विचार कर अजीब है।

संबंधित मुद्दे