Frage : zu kleiden xml

ich habe eine xml Akte wie below
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:


	
		Course 1
		
			Exam 1
			2010
			60		
		
		
			Exam 2
			2010
			70		
			
	
	
		Course 2
		
			Exam 3
			2010
			50
		
	


and wandele ich dieses xml in Reihencode wie below
1 um:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:

Funktion objectsIntoArray ($arrObjData, $arrData = Reihe ())
{

	//, wenn Eingang Gegenstand ist, Bekehrter in Reihe
	wenn (is_object ($arrObjData)) {
		$arrObjData = get_object_vars ($arrObjData);
	}

	wenn (is_array ($arrObjData)) {
			foreach ($arrObjData als $index => $value) {
				wenn (is_object ($value) oder is_array ($value)) {
					$value = objectsIntoArray ($value); //recursive-Anruf
				}
				
				$arrData [$index] = $value;
			}
	}

	Rückhol$arrData;
}

$xml = „my.xml“;

$object = simplexml_load_file ($xml);

$arr = objectsIntoArray ($object);

Druck „
“;

print_r ($arr);

Echo „Kurs-Zählimpuls“ .count ($arr [Kurs]). „
“; foreach ($arr [Kurs] als $course_key => $course_value) { Echo „Prüfung-Zählimpuls“ .count ($arr [Kurs] [$course_key] [Prüfung]). „
“; } ist


now bitte Kurs 2 dort schauen, eine Prüfung, aber es druckt mich 3., weil, wenn es eine Prüfung gibt, es nicht in array
exam [0] Reihe {

}

it der Bekehrten Prüfung-Reihe direkt {

}

wegen dessen es Prüfungen des Zählimpulses nicht es umwandelt, Zählimpulsumbauten innerhalb exam.

how ich regeln this.

thanks.
kann

Antwort : zu kleiden xml

wenn Sie verwenden, versteht dieser Code unter Ihnen, was ich bedeute. dieser Code löste mein Problem.
[Code]
/**
* XMLToArray Generator-Kategorie
* @author:  MA Razzaque Rupom ,
* Moderator, phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL: LINK2 http://www.rupom.infoLINK2
* @version:  1.0
* @date 06/05/2006
* Zweck: Schaffung der hierarchischen Reihe von den XML Daten
* Freigegeben: Unter GPL
*

Kategorie XmlToArray
{
   
    var $xml= '';
   
    /**
    * Rückstellungs-Erbauer
    * @param $xml = xml Daten
    * @return keine
    *
   
    Funktion XmlToArray ($xml)
    {
       $this->xml = $xml;  
    }
   
    /**
    * _struct_to_array ($values, &$i)
    *
    * Dieses ist hinzufügt den Inhalt des Rückholxml in die Reihe für die einfachere Verarbeitung.
    * Rekursiv, statisch
    *
    * @access privat
    * @param Reihe $values dieses ist die xml Daten in einer Reihe
    * @param int $i dieses ist die gegenwärtige Position in der Reihe
    * @return Reihe
    *
   
    Funktion _struct_to_array ($values, &$i)
    {
        $child = Reihe ();
        wenn (isset ($values [$i] [„Wert“])) array_push ($child, $values [$i] [„Wert“]);
       
        während ($i++ <� count="">            Schalter ($values [$i] [„Art“]) {
                Fall „cdata“:
                array_push ($child, $values [$i] [„Wert“]);
                Bruch;
               
                Fall „schließen“ ab:
                    $name = $values [$i] [„Umbau“];
                    wenn (! leeren ($name)){
                    $child [$name] = ($values [$i] [„Wert“])? ($values [$i] [„Wert“]): '';
                    wenn (isset ($values [$i] [„Attribute“])) {                  
                        $child [$name] = $values [$i] [„Attribute“];
                    }
                }  
              Bruch;
               
                Fall „öffnen sich“:
                    $name = $values [$i] [„Umbau“];
                    $size = isset ($child [$name])? sizeof ($child [$name]): 0;
                    $child [$name] [$size] = $this->_struct_to_array ($values, $i);
                Bruch;
               
                Fall „nah“:
                Rückhol$child;
                Bruch;
            }
        }
        Rückhol$child;
    } //_struct_to_array
   
    /**
    * createArray ($data)
    *
    * Dieses ist hinzufügt den Inhalt des Rückholxml in die Reihe für die einfachere Verarbeitung.
    *
    * @access allgemein
    * @param Schnur $data dieses ist die Schnur der xml Daten
    * @return Reihe
    *
    Funktion createArray ()
    {
        $xml = $this->xml;
        $values = Reihe ();
        $index = Reihe ();
        $array = Reihe ();
        $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] [„Umbau“];
        $array [$name] = isset ($values [$i] [„Attribute“])? $values [$i] [„Attribute“]: '';
        $array [$name] = $this->_struct_to_array ($values, $i);
        Rückhol$array;
    } //createArray
   
   
} //XmlToArray
? >

      
            
      
      
                        $xml_data = file_get_contents („XMLFormatPerformanceReport.xml“);
            
            //Creating-Fall der Kategorie
            $xmlObj = neues XmlToArray ($xml_data);
            
            //Creating-Reihe
            $arrayData = $xmlObj->createArray ();
            
            //Displaying die Reihe
            Echo „
„;
            print_r ($arrayData);
            ? >      
      

[/code]
Weitere Lösungen  
 
programming4us programming4us