Pergunta : xml a põr

eu tenho uma lima do xml como o class= " lineNumbers " >
1 do >


	
		Course 1
		
			Exam 1
			2010
			60		
		
		
			Exam 2
			2010
			70		
			
	
	
		Course 2
		
			Exam 3
			2010
			50
		
	
o class= >

and de
1 do >

função objectsIntoArray ($arrObjData, $arrData = disposição ())
{

	// se a entrada é objeto, converso na disposição
	se (is_object ($arrObjData)) {
		$arrObjData = get_object_vars ($arrObjData);
	}

	se (is_array ($arrObjData)) {
			foreach ($arrObjData como o => $value de $index) {
				se (is_object ($value) ou is_array ($value)) {
					$value = objectsIntoArray ($value); chamada de //recursive
				}
				
				$arrData [$index] = $value;
			}
	}

	$arrData do retorno;
}

$xml = “my.xml”;

$object = simplexml_load_file ($xml);

$arr = objectsIntoArray ($object);

cópia “
”;

print_r ($arr);

eco do “contagem” .count curso ($arr [curso]). “
”; foreach ($arr [curso] como o => $course_value de $course_key) { eco do “contagem” .count exame ($arr [curso] [$course_key] [exame]). “
”; } o class= de


now olham por favor o curso 2 lá é um exame mas imprime-me 3. porque quando há um exame não o converte do array
exam [a 0] da disposição {

} do

it dos conversos

da disposição do exame diretamente {

} por causa daquele exames da contagem não ele Tag da contagem dentro de exam.

how pode mim repara this.

thanks. class= do

Resposta : xml a põr

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]
Outras soluções  
 
programming4us programming4us