Fråga : xml som ska ställa i ordning

jag har en xml att spara lik för class=" codeSnippet " för below
1 för >




Course 1

Exam 1
2010
60


Exam 2
2010
70



Course 2

Exam 3
2010
50


förmiddagen för >

and i för <-/courses>
1 för >

fungera objectsIntoArray ($arrObjData, $arrData = samling ())
{
//, om mata in, är anmärker, konverterar in i samling
om (is_object ($arrObjData)) {
$arrObjData = get_object_vars ($arrObjData);
}
om (is_array ($arrObjData)) {
foreach ($arrObjData som $index-=> $value) {
om (is_object ($value) eller is_array ($value)) {
$value = objectsIntoArray ($value); //recursive appell
}
$arrData [$index] = $value;
}
}
återgång $arrData;
}
$xml = ”my.xml”;
$object = simplexml_load_file ($xml);
$arr = objectsIntoArray ($object);
tryck ”
”;

print_r ($arr);

eka ”jagar räkningen” .count ($arr [jaga],). ”
”; foreach ($arr [jaga], som $course_key-=> $course_value) { eka ”examenräkningen” .count ($arr [jaga] [$course_key] [examen]). ”
”; } <-/pre>


now behar look jagar 2 där är en examen, men den skrivar mig ut 3. därför att, när det finns en examen, den inte konverterar till för array
exam [0] för samling {

} för

it för omvänder

för samling för examen direkt {

} på grund av det den examen för räkningen inte som det, räkningen märker insida exam.

how kan mig fixar this.

thanks.
" klar "

Svar : xml som ska ställa i ordning

om du använder denna, kodifiera nedanfört dig ska förstår vad jag betyder. detta kodifierar löste mitt problem.
[kodifiera],
/**
* Den XMLToArray generatorn klassificerar
* @author:  MOR Razzaque Rupom ,
* Examinator phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL: LINK2 http://www.rupom.infoLINK2
* @version:  1.0
* @date 06/05/2006
* Ämna: Skapa hierarkisk samling från XML-data
* Utsläppt: Under GPL
*

klassificera XmlToArray
{
   
    var $xml= '';
   
    /**
    * StandardConstructor
    * @param $xml = xmldata
    * @return inga
    *
   
    fungera XmlToArray ($xml)
    {
       $this->xml = $xml;  
    }
   
    /**
    * _struct_to_array ($values, &$i)
    *
    * Detta är tillfogar tillfredsställer av den återgång xmlen in i samlingen för lättare bearbeta.
    * Recursive statisk elektricitet
    *
    * privata @access
    * @paramsamling $values detta är xmldatan i en samling
    * @param int $i detta är strömläget i samlingen
    * @returnsamling
    *
   
    fungera _struct_to_array ($values, &$i)
    {
        $child = samling ();
        om (isset ($values [$i] [”värdera”],)) array_push ($child, $values [$i] [”värdera”],);
       
        stunder ($i++ <� count="">            kopplar ($values [$i] [”typ”]) {
                fall ”cdata”:
                array_push ($child, $values [$i] [”värdera”],);
                avbrott;
               
                fallet ”avslutar”:
                    $name = $values [$i] [”märka”];
                    om (! töm ($name)){
                    $child [$name] = ($values [$i] [”värdera”],)? [”värdera”],) ($values [$i]: '';
                    om (isset ($values [$i] [”attribut])) {                  
                        $child [$name] = $values [$i] [”attribut];
                    }
                }  
              avbrott;
               
                fallet ”öppnar”:
                    $name = $values [$i] [”märka”];
                    $size = isset ($child [$name])? sizeof ($child [$name]): 0;
                    $child [$name] [$size] = $this->_struct_to_array ($values, $i);
                avbrott;
               
                ”nära” fall:
                återgång $child;
                avbrott;
            }
        }
        återgång $child;
    } //_struct_to_array
   
    /**
    * createArray ($data)
    *
    * Detta är tillfogar tillfredsställer av den återgång xmlen in i samlingen för lättare bearbeta.
    *
    * offentliga @access
    * @param stränger $data som denna är stränga av xmldatan
    * @returnsamling
    *
    fungera createArray ()
    {
        $xml = $this->xml;
        $values = samling ();
        $index = samling ();
        $array = samling ();
        $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] [”märka”];
        $array [$name] = isset ($values [$i] [”attribut])? $values [$i] [”attribut]: '';
        $array [$name] = $this->_struct_to_array ($values, $i);
        återgång $array;
    } //createArray
   
   
} //XmlToArray
? >

      
            
      
      
                        $xml_data = file_get_contents (”XMLFormatPerformanceReport.xml”);
            
            //Creating anföra som exempel av klassificera
            $xmlObj = nya XmlToArray ($xml_data);
            
            //Creating samling
            $arrayData = $xmlObj->createArray ();
            
            //Displaying samlingen
            eka ”,
”;
            print_r ($arrayData);
            ? >      
      

[/code]
Andra lösningar  
 
programming4us programming4us