si vous employez ce code au-dessous de vous comprendra ce que veux dire je. ce code a résolu mon problème.
[code]
/**
* Classe de générateur de XMLToArray
* @author : MA Razzaque Rupom
,
* Modérateur, phpResource (LINK1 http://groups.yahoo.com/group/phpresource/LINK1)
* URL : LINK2 http://www.rupom.infoLINK2
* @version : 1.0
* @date 06/05/2006
* But : Création de la rangée hiérarchique des données de XML
* Libéré : Sous le GPL
*
classe XmlToArray
{
variété $xml= '' ;
/**
* Constructeur de défaut
* @param $xml = données de xml
* @return aucun
*
fonction XmlToArray ($xml)
{
$this->xml = $xml ;
}
/**
* _struct_to_array ($values, &$i)
*
* C'est ajoute le contenu du xml de retour dans la rangée pour un traitement plus facile.
* Récursif, statique
*
* @access privés
* la rangée $values de @param ceci est les données de xml dans une rangée
* le @param international $i ceci est l'endroit courant dans la rangée
* rangée de @return
*
fonction _struct_to_array ($values, &$i)
{
$child = rangée () ;
si (isset ($values [$i] [« valeur »])) array_push ($child, $values [$i] [« valeur »]) ;
tandis que (commutateur <� count=""> de $i++ ($values [$i] [« type »]) {
cas « cdata » :
array_push ($child, $values [$i] [« valeur »]) ;
coupure ;
le cas « accomplissent » :
$name = $values [$i] [« étiquette »] ;
si (! vider ($name)){
$child [$name] = ($values [$i] [« valeur »]) ? ($values [$i] [« valeur »]) : '' ;
si (isset ($values [$i] [« attributs »])) {
$child [$name] = $values [$i] [« attributs »] ;
}
}
coupure ;
le cas « s'ouvrent » :
$name = $values [$i] [« étiquette »] ;
$size = isset ($child [$name]) ? sizeof ($child [$name]) : 0 ;
$child [$name] [$size] = $this->_struct_to_array ($values, $i) ;
coupure ;
cas « étroit » :
$child de retour ;
coupure ;
}
}
$child de retour ;
} //_struct_to_array
/**
* createArray ($data)
*
* C'est ajoute le contenu du xml de retour dans la rangée pour un traitement plus facile.
*
* @access publics
* la corde $data de @param ceci est la corde des données de xml
* rangée de @return
*
fonction createArray ()
{
$xml = $this->xml ;
$values = rangée () ;
$index = rangée () ;
$array = rangée () ;
$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] [« étiquette »] ;
$array [$name] = isset ($values [$i] [« attributs »]) ? $values [$i] [« attributs »] : '' ;
$array [$name] = $this->_struct_to_array ($values, $i) ;
$array de retour ;
} //createArray
} //XmlToArray
? >
$xml_data = file_get_contents (« XMLFormatPerformanceReport.xml ») ;
Exemple de //Creating de la classe
$xmlObj = nouveau XmlToArray ($xml_data) ;
Rangée de //Creating
$arrayData = $xmlObj->createArray () ;
//Displaying la rangée
écho « « ;
print_r ($arrayData) ;
? >
[/code]