Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Generer automatiquement un fichier xml

2 réponses
Avatar
Justine
Bonjour,
Je suis a la rechercher d'idée et de solutions surtout, je voudrais
générer un fichier xml automatiquement (balises + données) grace a
un objet php.
En d'autre termes je voudrais que mon fichier xml se construise sur le
modèle de mon objet.


J'ai trouvé comment générer le fichier et créer des balises et les
remplir mais tout ca se fait "a la main" or il faudrait que si on
change , ajoute ou supprime un champs dans mon objet alors la
reconstruction du fichier xml se fasse en consequence a savoir sans le
champs supprimé, logique non?

Qu'en pensez vous?
Avez vous des idées?


Cordialement
Justine

2 réponses

Avatar
FightClub!
Bonjour,
Je suis a la rechercher d'idée et de solutions surtout, je voudrais
générer un fichier xml automatiquement (balises + données) grace a
un objet php.
En d'autre termes je voudrais que mon fichier xml se construise sur le
modèle de mon objet.


J'ai trouvé comment générer le fichier et créer des balises et les
remplir mais tout ca se fait "a la main" or il faudrait que si on
change , ajoute ou supprime un champs dans mon objet alors la
reconstruction du fichier xml se fasse en consequence a savoir sans le
champs supprimé, logique non?

Qu'en pensez vous?
Avez vous des idées?



peut-être en suivant l'un de ces liens :
- http://minixml.psychogenic.com/
- http://www.active-link.com/software/

ou si c'est pour exporter du contenu provenant de bases de données, très
simple (à condition de connaitre PEAR) :
- http://pear.php.net/package/XML_sql2xml

enfin, pour des questions de performances, si c'est PHP5, alors
SimpleXML sera surement le plus efficace

--

http://SurveilleTonSite.sd2i.org
... un site web en panne ne sert à rien !

Avatar
John GALLET
Bonjour,

Avez vous des idées?
Vaguement.


En vrac, non testé, non optimisé (à part éviter de passer tout en
empilant, je grouik power à la globale, une variable par référence ferait
aussi bien l'affaire probablement)

// construct recursively a (global) string containg
// the xml representation of an object

$GLOB_XML_STRING=""; // global string for result
$GLOB_TRANSLATION_TABLE=array(
"interne1"=>"externe1",
"interne3"=>"externe3");

function obj2xml($in)
{
global $GLOB_XML_STRING;
if(is_object($in))
$array_in=get_object_vars($in_obj);
else if(is_array($in))
$array_in=$in;
else $array_in=array($in); // yes I am lazy

foreach($array_in as $key =>$value)
{
if(is_object($value) || is_array($value))
{
obj2xml($value);
continue;
}

// non recursive structure reached
if(isset($GLOB_TRANSLATION_TABLE),$key)
$name=$GLOB_TRANSLATION_TABLE[$key];
else
$name=$key;

$GLOB_XML_STRING.="<$name>$value</$name>n";
} // end loop

} // end function

HTH
JG