Je veux convertir XML ci-dessous au tableau PHP. Toutes les suggestions sur comment je peux faire cela?
<aaaa Version="1.0">
<bbb>
<cccc>
<dddd Id="id:pass" />
<eeee name="hearaman" age="24" />
</cccc>
</bbb>
</aaaa>
Je veux convertir XML ci-dessous au tableau PHP. Toutes les suggestions sur comment je peux faire cela?
<aaaa Version="1.0">
<bbb>
<cccc>
<dddd Id="id:pass" />
<eeee name="hearaman" age="24" />
</cccc>
</bbb>
</aaaa>
Une autre option est l'extension SimpleXML (je crois que c'est livré en standard avec la plupart de php installe.)
http://php.net/manual/en/book.simplexml.php
La syntaxe ressemble à quelque chose comme ça pour ton exemple
$xml = new SimpleXMLElement($xmlString);
echo $xml->bbb->cccc->dddd['Id'];
echo $xml->bbb->cccc->eeee['name'];
// or...........
foreach ($xml->bbb->cccc as $element) {
foreach($element as $key => $val) {
echo "{$key}: {$val}";
}
}
La conversion d'une chaîne de caractères XML ($buffer
) dans un tableau simplifié d'ignorer les attributs de groupement et de l'enfant-éléments avec le même nom:
function XML2Array(SimpleXMLElement $parent)
{
$array = array();
foreach ($parent as $name => $element) {
($node = & $array[$name])
&& (1 === count($node) ? $node = array($node) : 1)
&& $node = & $node[];
$node = $element->count() ? XML2Array($element) : trim($element);
}
return $array;
}
$xml = simplexml_load_string($buffer);
$array = XML2Array($xml);
$array = array($xml->getName() => $array);
Résultat:
Array
(
[aaaa] => Array
(
[bbb] => Array
(
[cccc] => Array
(
[dddd] =>
[eeee] =>
)
)
)
)
Si vous aussi vous voulez avoir les attributs, elles sont disponibles via JSON de codage/décodage de SimpleXMLElement. C'est souvent le plus facile rapide n'dirty solution:
$xml = simplexml_load_string($buffer);
$array = json_decode(json_encode((array) $xml), 1);
$array = array($xml->getName() => $array);
Résultat:
Array
(
[aaaa] => Array
(
[@attributes] => Array
(
[Version] => 1.0
)
[bbb] => Array
(
[cccc] => Array
(
[dddd] => Array
(
[@attributes] => Array
(
[Id] => id:pass
)
)
[eeee] => Array
(
[@attributes] => Array
(
[name] => hearaman
[age] => 24
)
)
)
)
)
)
Prendre note que toutes ces méthodes ne fonctionnent que dans l'espace de noms du document XML.
Veuillez consulter cette
utiliser la réponse donnée par moi ci-dessous quesion il fonctionnera de nice.
dans ce remplacer $ssString valeur par
"<aaaa Version="1.0"><bbb><ccc><dddd Id="id:pass" /><eeee name="hearaman" age="24" /></cccc></bbb></aaa>"
si tous les inconvénients de me le dire.
Comment faire pour convertir cette demande XML dans un tableau en php?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.