Pregunta

<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>

Necesito obtener todos los atributos (clave y valor)

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

da este error

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

en el artículo 3

¿Fue útil?

Solución

La razón por la que está explotando en el tercer elemento es que tiene dos atributos. Está utilizando un acceso directo que solo obtiene el nombre si solo hay un atributo. Debe cambiar su código a lo siguiente:

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

Editar: faltaban los corchetes después del nombre.

Otros consejos

Use attr.valueOf () para obtener el valor de ese atributo

for each (var item : XML in data.items)
{
    for each (var attr : XML in item.attributes())
    {
        trace(attr.name()+":"+ attr.valueOf());
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top