AS3: все ключи + значения из атрибутов XML - PullRequest
1 голос
/ 04 мая 2009
<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>

Мне нужно получить все атрибуты (ключ и значение)

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

выдает эту ошибку

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

на 3-й позиции

Ответы [ 2 ]

4 голосов
/ 04 мая 2009

Причина, по которой он взрывается на третьем предмете, состоит в том, что он имеет два атрибута. Вы используете ярлык, который получает имя, только если есть только один атрибут. Вам нужно изменить свой код на следующее:

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

Редактировать: скобки после имени отсутствовали.

1 голос
/ 03 февраля 2012

Используйте attr.valueOf (), чтобы получить значение этого атрибута

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