Quick easy way to turn objectified SimpleXMLElement data into an array.
<?php
function get_xml_from_some_source(){
//blah blah blah build cUrl
$data = @curl_exec($ch);
$newdata = new SimpleXMLElement($data);
$new = xml2array_parse($newdata);
}
function xml2array_parse($xml){
foreach ($xml->children() as $parent => $child){
$return["$parent"] = xml2array_parse($child)?xml2array_parse($child):"$child";
}
return $return;
}
?>
My first post, be nice. ;-)
SimpleXMLElement->children()
(PHP 5 >= 5.0.1)
SimpleXMLElement->children() — Encontra os nós filhos de um dado nó
Descrição
SimpleXMLElement
SimpleXMLElement children
([ string $ns
[, bool $is_prefix
]] )
Este método encontra os nós filhos que estão dentro de um dado membro. O resultado segue as retras normais de iteração.
Nota: SimpleXML tem uma regra quando do acréscimo de propriedades iterarivas na maioria dos métodos. Eles não podem ser visualizados com var_dump() nem nada que possa visualizar objetos.
Parâmetros
- ns
-
- is_prefix
-
Padrão para FALSE
Valor Retornado
Histórico
| Versão | Descrição |
|---|---|
| 5.2.0 | O parâmetro opcional is_prefix foi adicionado. |
Exemplos
Exemplo #1 Utilizando uma children() como uma pseudo-array
<?php
$xml = new SimpleXMLElement(
'<person>
<child role="son">
<child role="daughter"/>
</child>
<child role="daughter">
<child role="son">
<child role="son"/>
</child>
</child>
</person>');
foreach ($xml->children() as $second_gen) {
echo ' The person begot a ' . $second_gen['role'];
foreach ($second_gen->children() as $third_gen) {
echo ' who begot a ' . $third_gen['role'] . ';';
foreach ($third_gen->children() as $fourth_gen) {
echo ' and that ' . $third_gen['role'] .
' begot a ' . $fourth_gen['role'];
}
}
}
?>
O exemplo acima irá imprimir:
The person begot a son who begot a daughter; The person begot a daughter who begot a son; and that son begot a son
User Contributed Notes
SimpleXMLElement->children()
SimpleXMLElement->children()
hoseinnj at google's great mail dot com
19-Mar-2009 04:25
19-Mar-2009 04:25

SimpleXMLElement->attributes()