AS3 – xml.getElementById
Publicado por Iván Gajate el 13 de abril de 2010 en AS3, Flash
Si tenemos un xml con etiquetas anidadas como esta:
<contenedor> <caja> <item id="expediente1"> Contenido del expediente 1 </item> </caja> <caja> <item id="expediente2"> Contenido del expediente 2 </item> </caja> </contenedor>
Y queremos acceder directamente al nodo <item id=”expediente1”> podemos hacerlo con esta línea de E4X:
miXml.descendants().(hasOwnProperty("@id") && @id == "expediente1")[0]
Es fácil de entender, nos devolverá un XMList con todos los nodos que tengan el atributo “id” y que id==”expediente1”. Y de ese nos quedamos con el primero.
Podemos meterla en una función para que sea más cómoda de usar:
function getElementById(data:XML, id:String):XML{ return data.descendants().(hasOwnProperty("@id") && @id==id)[0]; } // Se usaria asi: getElementById(miXml, "expediente1");
La solución me la ha dado Joseba en la lista de AsNativos.
Este tipo de funciones las voy a ir recopilando en una clase XmlUtils.
Descargar todo el paquete es.yporqueno
14 de abril de 2010 a las 19:42
Muy buena esa línea 🙂
14 de abril de 2010 a las 18:16
Muy interesante y la verdad es que tiene muchas posibilidades interesantes 😉