2009-05-04 5 views
1
<top> 
    <item link="http://www.google.be"><![CDATA[test]]></item> 
    <item link="http://www.google.be"><![CDATA[test]]></item> 
    <item bold="true" link="http://www.google.be"><![CDATA[test]]></item> 
</top> 

ich alle Attribute (beide Schlüssel und Wert)AS3: alle Schlüssel + Werte von XML-Attribute

for each (var item : XML in data.item) 
{ 
    trace(item.attributes().name()); 
} 

gibt diesen Fehler

TypeError: Error #1086: The name method only works on lists containing one item. 

im 3. Artikel erhalten müssen

Antwort

4

Der Grund, warum es auf dem dritten Element in die Luft geht, ist, dass es zwei Attribute hat. Sie verwenden eine Verknüpfung, die nur den Namen erhält, wenn nur ein Attribut vorhanden ist. Sie müssen den folgenden Code ändern:

for each (var item : XML in data.items) 
{ 
    for each (var attr : XML in item.attributes()) 
    { 
     trace(attr.name()); 
    } 
} 

Bearbeiten: Klammern nach dem Namen fehlten.

1

Verwendung attr.valueOf(), um den Wert dieses Attributs zu erhalten

for each (var item : XML in data.items) 
{ 
    for each (var attr : XML in item.attributes()) 
    { 
     trace(attr.name()+":"+ attr.valueOf()); 
    } 
}