Cuestión : xml a poner en orden

tengo un archivo del xml como el class= " lineNumbers " >
1 del >
¿

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

and de
1 del >

función objectsIntoArray ($arrObjData, $arrData = arsenal ())
{

	// si la entrada es objeto, convertido en arsenal
	si (is_object ($arrObjData)) {
		$arrObjData = get_object_vars ($arrObjData);
	}

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

	$arrData de vuelta;
}

$xml = “my.xml”;

$object = simplexml_load_file ($xml);

$arr = objectsIntoArray ($object);

impresión “
”;

print_r ($arr);

eco “cuenta” .count ($arr [curso] del curso). “
”; foreach ($arr [curso] como => $course_value de $course_key) { eco “cuenta” .count ($arr [curso] [$course_key] [examen] del examen). “
”; } el class= de


now miran por favor el curso 2 allí es un examen pero me imprime 3. porque cuando hay un examen no lo convierte a 0] del arsenal del array
exam [{

} del

it de los convertidos

del arsenal del examen directo {

} debido a ése los exámenes de la cuenta no él las etiquetas puede de la cuenta dentro de exam.

how yo fija this.

thanks. class= del

Respuesta : xml a poner en orden

si usted utiliza este código debajo de usted entenderá lo que significo. este código solucionó mi problema.
[código]
/**
* Clase del generador de XMLToArray
* @author:  MA Razzaque Rupom ,
* Asesor, phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL: LINK2 http://www.rupom.infoLINK2
* @version:  1.0
* @date 06/05/2006
* Propósito: Crear arsenal jerárquico de datos de XML
* Lanzado: Bajo GLP
*

clase XmlToArray
{
   
    var $xml= '';
   
    /**
    * Constructor del defecto
    * @param $xml = datos del xml
    * @return ningunos
    *
   
    función XmlToArray ($xml)
    {
       $this->xml = $xml;  
    }
   
    /**
    * _struct_to_array ($values, &$i)
    *
    * Esto es agrega el contenido del xml de vuelta en el arsenal para un proceso más fácil.
    * Recurrente, estático
    *
    * @access privados
    * el arsenal $values del @param esto es los datos del xml en un arsenal
    * el @param internacional $i esto es la localización actual en el arsenal
    * arsenal del @return
    *
   
    función _struct_to_array ($values, &$i)
    {
        $child = arsenal ();
        si (isset ($values [$i] [“valor”])) array_push ($child, $values [$i] [“valor”]);
       
        mientras que (interruptor <� count="">            de $i++ ($values [$i] [“tipo”]) {
                caso “cdata”:
                array_push ($child, $values [$i] [“valor”]);
                rotura;
               
                el caso “termina”:
                    $name = $values [$i] [“etiqueta”];
                    ¡si (! vaciar ($name)){
                    ¿$child [$name] = ($values [$i] [“valor”])? ($values [$i] [“valor”]): '';
                    si (isset ($values [$i] [“cualidades”])) {                  
                        $child [$name] = $values [$i] [“cualidades”];
                    }
                }  
              rotura;
               
                el caso “se abre”:
                    $name = $values [$i] [“etiqueta”];
                    ¿$size = isset ($child [$name])? sizeof ($child [$name]): 0;
                    $child [$name] [$size] = $this->_struct_to_array ($values, $i);
                rotura;
               
                caso “cercano”:
                $child de vuelta;
                rotura;
            }
        }
        $child de vuelta;
    } //_struct_to_array
   
    /**
    * createArray ($data)
    *
    * Esto es agrega el contenido del xml de vuelta en el arsenal para un proceso más fácil.
    *
    * @access públicos
    * la secuencia $data del @param esto es la cadena de los datos del xml
    * arsenal del @return
    *
    función createArray ()
    {
        $xml = $this->xml;
        $values = arsenal ();
        $index = arsenal ();
        $array = arsenal ();
        $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] [“etiqueta”];
        ¿$array [$name] = isset ($values [$i] [“cualidades”])? $values [$i] [“cualidades”]: '';
        $array [$name] = $this->_struct_to_array ($values, $i);
        $array de vuelta;
    } //createArray
   
   
} //XmlToArray
¿? >

      
            
      
      
                        $xml_data = file_get_contents (“XMLFormatPerformanceReport.xml”);
            
            Caso de //Creating de la clase
            $xmlObj = nuevo XmlToArray ($xml_data);
            
            Arsenal de //Creating
            $arrayData = $xmlObj->createArray ();
            
            //Displaying el arsenal
            eco “
“;
            print_r ($arrayData);
            ¿? >      
      

[/code]
Otras soluciones  
 
programming4us programming4us