Comment convertir SimpleXMLObject en Tableau PHP?
Considérons le code suivant:
$string = '<device>
<id>1234</id>
<label>118</label>
<username>root</username>
<password>helloWorld</password>
<hardware>
<memory>4GB RAM</memory>
<storage_drives>
<storage_drive_1>2TB SATA 7,200RPM</storage_drive_1>
<storage_drive_2>1TB SATA 7,200RPM</storage_drive_2>
<storage_drive_3>Not Applicable</storage_drive_3>
<storage_drive_4>Not Applicable</storage_drive_4>
</storage_drives>
</hardware>
</device>';
$xml = new SimpleXMLElement($string);
$deviceDetails = Array();
foreach($xml as $element){
$tag = $element->getName();
$deviceDetails += Array($tag => '$element->$tag)',
);
}
Sortie $detailsDetails
tableau est comme suit:
Array
(
[id] => $element->$tag)
[label] => $element->$tag)
[username] => $element->$tag)
[password] => $element->$tag)
[hardware] => $element->$tag)
)
qui est faux.
Ma question est, comment faire $element->$tag
travail?
L'utilisation des guillemets au lieu de guillemets simples (ou aucune)
OriginalL'auteur CuriousMind | 2011-10-15
Vous devez vous connecter pour publier un commentaire.
Livre De Zeus code enveloppé dans la fonction pour le faire fonctionner de manière récursive:
ce qui semble ne pas travailler par le biais de l'ensemble de la matrice, c'est comme s'il ne retourne à la première entrée pour moi... est-ce possible?
Découvrez la solution du Livre De Zeus
est droit, ce qui est excellent pour SimpleXMLElements qui n'ont pas de toutes les listes. Pour ma part j'ai juste enlevé le
$arr[$tag] =
ternaire ligne et de le diviser en pleine conditions, dans le cas$element
est un SimpleXMLElement, ne$arr[$tag][] = xml2array($element);
. Note le []. Vous ne savez pas si c'est ce que d'autres auraient besoin, cependant.OriginalL'auteur dfsq
Essayez ceci:
Ce sera de sortie:
ou si vous n'aimez pas cela, vous pouvez utiliser une classe PHP comme: http://www.bin-co.com/php/scripts/xml2array/
ou de la vue dfsq réponse
Vous avez raison, vous avez besoin de tous d'entre eux sous forme de tableau?
J'ai mis à jour ma réponse
+1 pour cette méthode. Bien qu'il vraiment pas la bonne technique pour le faire comme ça, mais pour de simples petits objets, il n'est pas judicieux d'utiliser des fonctions, etc. pour convertir un objet à un tableau.
par la manière, pas besoin de (array) avant simplexml_load_string
OriginalL'auteur Book Of Zeus
Essayez Ceci:
Merci il sauver mon mal de temps....
OriginalL'auteur Pritee chaudhari