Qualcuno conosce un modo rapido per convertire un oggetto SimpleXMLElement in un oggetto STDClass normale, senza scorrere manualmente ogni ramo? Mi sentirò meglio lavorando con un oggetto normale dopo aver recuperato i dati.Converti rapidamente simpleXMLObject in STDClass?
risposta
suggerisco di guardare in utilizzando XMLReader, che si presta bene alla estrazione dei dati e la memorizzazione come qualunque tipo di dati si vuole, invece di SimpleXML. È particolarmente utile per i documenti usati regolarmente (lo uso, esteso come RSSReader, per RSS), è molto più veloce di quanto ci si potrebbe aspettare e, come bonus, utilizza meno memoria di SimpleXML.
Grazie a GZipp, lo esaminerò. –
Non so se c'è un modo per convertire l'oggetto senza iterarlo attraverso di esso. La mia ipotesi è che non puoi.
È possibile controllare questo thread out, mostra come convertire un SimpleXML in un array, è possibile adattarlo.
Motivo del downvote? –
$my_std_class = json_decode(json_encode($my_simplexmlelement));
$my_assoc_array = json_decode(json_encode($my_simplexmlelement), true);
Funziona come un fascino !!! – Eric
+1, super soluzione, funziona alla grande. – Cyclonecode
+1, questa dovrebbe essere la risposta scelta. Il motivo per cui avevo bisogno di convertirlo in stdClass era perché Drupal ha problemi con l'oggetto SimpleXmlElement. –
Un altro modo è:
(object)(array)$my_simplexmlelement
Purtroppo se avete bambini rimangono come SimpleXMLElement
- 1. Converti codifica ascii in int e viceversa in python (rapidamente)
- 2. Come convertire SimpleXMLObject in array PHP?
- 3. Cast ricorsivo da SimpleXMLObject a Array
- 4. PHP/JSON - stdClass Object
- 5. stdClass to array?
- 6. stdClass Problemi dell'oggetto
- 7. PHP JSON decodifica - stdClass
- 8. iterazione attraverso un oggetto stdClass in PHP
- 9. Come istanziare stdClass sul posto
- 10. Rimuovi gli oggetti stdClass dall'array
- 11. Come ottengo il valore dall'oggetto (stdClass)?
- 12. Oggetto array stdClass PHP - Echo Value
- 13. come faccio ad aggiungere un oggetto stdClass
- 14. PHP - warning - Proprietà non definita: stdClass - correzione?
- 15. Avviso: Proprietà non definita: stdClass: errore
- 16. PHP: conteggio di un oggetto stdClass
- 17. oggetto di classe stdClass non poteva essere convertito in stringa
- 18. Come stampare le proprietà dell'oggetto stdClass in PHP?
- 19. Come reindex ElasticSearch rapidamente?
- 20. Inserisce rapidamente file 250k
- 21. Opcache cancella troppo rapidamente
- 22. Come eliminare/* e */rapidamente in XCode
- 23. Crea rapidamente proprietà di dipendenza in VS
- 24. Crea rapidamente classe da un'interfaccia in eclissi
- 25. calcolare integrali doppi in R rapidamente
- 26. Aprire rapidamente la tabella in SQLDeveloper
- 27. Come creare rapidamente gli array in C++
- 28. Come concatenare rapidamente due righe in Vim?
- 29. Converti UIImage in NSData e converti in UIImage in Swift?
- 30. Come anticipare rapidamente un ramo?
Vuoi dire l'importazione di tutte le proprietà pubbliche che SimpleXMLElement? Quick è relativo :) – Flavius
Si "sentirsi meglio" non è una ragione valida imo :) Qual è il vero motivo per cui si desidera utilizzare una stdClass? – chelmertz
Bene, sto recuperando i dati da un file XML ed elaborandolo successivamente in un sistema piuttosto complesso. Da quel momento non ho bisogno di alcun comportamento specifico XML/SimpleXML, ma solo dei dati grezzi. Le funzioni XML di PHP tendono a non essere ben documentate come le altre parti del linguaggio, e temo un comportamento inaspettato quando si manipolano i dati lungo la strada, essendo ancora un semplice elemento XML. Con un STDClass, so cosa aspettarmi, come manipolarlo, convalidare i dati e così via. Questa è la versione lunga di "sentirsi meglio". Sentirsi meglio? :) –