¿Hay alguna forma más elegante de escaparse de los atributos de SimpleXML en una matriz?Atributos de SimpleXML en Array
$result = $xml->xpath($xpath);
$element = $result[ 0 ];
$attributes = (array) $element->attributes();
$attributes = $attributes[ '@attributes' ];
Realmente no quiero tener que recorrerlo solo para extraer el par de clave/valor. Todo lo que necesito es meterlo en una matriz y luego pasarlo. Pensé que attributes()
lo habría hecho de manera predeterminada, o al menos dada la opción. Pero ni siquiera pude encontrar la solución anterior en ninguna parte, tuve que resolverlo por mi cuenta. ¿Estoy sobrecompletando esto o algo?
Editar:
Todavía estoy usando el script anterior hasta que no sepa a ciencia cierta si el acceso a la matriz @attributes es seguro o no.
Sí, pero el problema con esto es que todavía se ve a sí mismo como un elemento SimpleXML y, por lo tanto, tendrías que escribir '$ attr ['a']' en una cadena para que funcione correctamente. Estoy pasando esta matriz a otra clase que no sabe qué tipo se supone que es, solo que necesita ser una matriz. – mseancole
Ah, lo tienes en la edición ... ¿El ciclo es "mejor" que el que estoy haciendo actualmente? Yo pensaría que hacerlo sin un bucle sería más rápido. – mseancole
@showerhead: No sé si es mejor, pero siempre aprendí a no leer directamente la propiedad ''@ attributes''. –