se você se usa este código abaixo de você compreenderá o que eu significo. este código resolveu meu problema.
[código]
/**
* Classe do gerador de XMLToArray
* @author: Miliampère Razzaque Rupom
,
* Monitor, phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL: LINK2 http://www.rupom.infoLINK2
* @version: 1.0
* @date 06/05/2006
* Finalidade: Criando a disposição hierárquica dos dados de XML
* Liberado: Sob o GPL
*
classe XmlToArray
{
var $xml= '';
/**
* Construtor do defeito
* @param $xml = dados do xml
* @return nenhuns
*
função XmlToArray ($xml)
{
$this->xml = $xml;
}
/**
* _struct_to_array ($values, &$i)
*
* Isto é adiciona os índices do xml do retorno na disposição para um processamento mais fácil.
* Recursive, de estática
*
* @access confidenciais
* a disposição $values do @param isto é os dados do xml em uma disposição
* o @param int $i isto é a posição atual na disposição
* disposição do @return
*
função _struct_to_array ($values, &$i)
{
$child = disposição ();
se (isset ($values [$i] [“valor”])) array_push ($child, $values [$i] [“valor”]);
quando (interruptor <� count=""> de $i++ ($values [$i] [“tipo”]) {
caso “cdata”:
array_push ($child, $values [$i] [“valor”]);
ruptura;
o caso “termina”:
$name = $values [$i] [“Tag”];
se (! esvaziar ($name)){
$child [$name] = ($values [$i] [“valor”])? ($values [$i] [“valor”]): '';
se (isset ($values [$i] [“atributos”])) {
$child [$name] = $values [$i] [“atributos”];
}
}
ruptura;
o caso “abre”:
$name = $values [$i] [“Tag”];
$size = isset ($child [$name])? sizeof ($child [$name]): 0;
$child [$name] [$size] = $this->_struct_to_array ($values, $i);
ruptura;
caso “próximo”:
$child do retorno;
ruptura;
}
}
$child do retorno;
} //_struct_to_array
/**
* createArray ($data)
*
* Isto é adiciona os índices do xml do retorno na disposição para um processamento mais fácil.
*
* @access públicos
* a corda $data do @param isto é a corda dos dados do xml
* disposição do @return
*
função createArray ()
{
$xml = $this->xml;
$values = disposição ();
$index = disposição ();
$array = disposição ();
$parser = xml_parser_create ();
xml_parser_set_option ($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parse_into_struct ($parser, $xml, $values, $index);
xml_parser_free ($parser);
$i = 0;
$name = $values [$i] [“Tag”];
$array [$name] = isset ($values [$i] [“atributos”])? $values [$i] [“atributos”]: '';
$array [$name] = $this->_struct_to_array ($values, $i);
$array do retorno;
} //createArray
} //XmlToArray
? >
$xml_data = file_get_contents (“XMLFormatPerformanceReport.xml”);
Exemplo de //Creating da classe
$xmlObj = XmlToArray novo ($xml_data);
Disposição de //Creating
$arrayData = $xmlObj->createArray ();
//Displaying a disposição
eco ““;
print_r ($arrayData);
? >
[/code]