¿Alguien sabe una forma rápida de convertir un elemento SimpleXMLElement a un objeto STDClass normal, sin iterar a través de cada rama manualmente? Me sentiría mejor trabajando con un objeto normal después de obtener los datos.¿Convertir rápidamente simpleXMLObject a STDClass?
Respuesta
Sugiero mirar en el uso de XMLReader, que se presta bien a la extracción de datos y almacenarla como cualquier tipo de datos que uno desea, en lugar de SimpleXML. Es especialmente bueno para los documentos utilizados regularmente (lo uso, extendido como RSSReader, para RSS), es mucho más rápido de lo que cabría esperar, y como beneficio adicional, utiliza menos memoria que SimpleXML.
Gracias GZipp, investigaré eso. –
No sé si hay una forma de convertir el objeto sin recorrerlo. Yo creo que no puedes.
Puede consultar esto thread, le muestra cómo convertir un SimpleXML a una matriz, puede adaptar eso.
Motivo del voto a favor? –
$my_std_class = json_decode(json_encode($my_simplexmlelement));
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true);
Esto funciona como un encanto! – Eric
+1, súper solución, funciona muy bien. – Cyclonecode
+1, Esta definitivamente debería ser la respuesta elegida. La razón por la que necesitaba convertirlo a stdClass fue porque Drupal tiene problemas con el objeto SimpleXmlElement. –
Otra forma es:
(object)(array)$my_simplexmlelement
Desafortunadamente, si usted tiene niños que permanecer como SimpleXMLElement
- 1. Lanzamiento recursivo de SimpleXMLObject a Array
- 2. Convertir/enviar un objeto stdClass a otra clase
- 3. stdClass a array?
- 4. Convertir codificación ascii a int y viceversa en python (rápidamente)
- 5. stdClass Problemas de objeto
- 6. PHP: ¿Cómo convertir una matriz en un objeto StdClass?
- 7. objeto de la clase stdClass No se pudo convertir a cadena
- 8. PHP/JSON - stdClass Objeto
- 9. PHP JSON decodificar - stdClass
- 10. numpy: Cómo convertir un tipo de matriz rápidamente
- 11. PHP: Cuente un objeto stdClass
- 12. Aviso: Propiedad indefinida: stdClass: error
- 13. stdClass object y foreach loops
- 14. añadir propiedades a objetos stdClass de otro objeto
- 15. ¿Agregar rápidamente un solo pin a MKMapView?
- 16. Android, envía mensajes a 1000 dispositivos rápidamente
- 17. Cómo instanciar stdClass en su lugar
- 18. ¿Cómo obtengo el valor de object (stdClass)?
- 19. PHP Structure - Interfaces y stdClass vars
- 20. Solicitud SOAP con <stdClass> etiquetas
- 21. PHP Array stdClass Object - Valor del eco
- 22. PHP - advertencia - Propiedad indefinida: stdClass - fix?
- 23. Convertir matriz en csv
- 24. Cargando rápidamente páginas web
- 25. Inserte rápidamente 250k filas
- 26. Aprendiendo PyQt rápidamente
- 27. SQL Server 2008 - Ir de Seleccionar a Editar rápidamente
- 28. Alfabetizar rápidamente un archivo grande a través de python
- 29. Cómo seleccionar rápidamente línea a gota en Vim (interior)
- 30. ¿Cómo avanzar rápidamente una rama a la cabeza?
¿Quiere decir la importación de todos los bienes de dominio público de que SimpleXMLElement? Rápido es relativo :) – Flavius
Usted "se sentiría mejor" no es una razón válida imo :) ¿Cuál es el verdadero motivo por el que desea que un stdClass funcione? – chelmertz
Bueno, estoy obteniendo datos de un archivo XML y procesándolo luego en un sistema bastante complejo. A partir de ese punto, no necesito ningún comportamiento específico XML/SimpleXML, sino solo los datos brutos. Las funciones XML de PHP tienden a no estar tan bien documentadas como las otras partes del lenguaje, y temo un comportamiento inesperado al manipular los datos a lo largo del camino, ya que sigue siendo un simple elemento XML. Con un STDClass, sé qué esperar, cómo manipularlo, validar los datos, etc. Esa es la versión larga de "sentirse mejor". ¿Sentirse mejor? :) –