Php extraction de donnée

isiselo Messages postés 2 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 janvier 2010 - 26 janv. 2010 à 10:20
isiselo Messages postés 2 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 janvier 2010 - 26 janv. 2010 à 11:36
Bonjour,
Voilà je vous explique mon problème

J'ai un outil sur lequel sont stockés des données xml,je dois récupérer automatiquement ses données XML et les injecter dans une base de donnée mysql.

Je suis un peu perdu en faite j'ai vu sur le net qu'il fallait dans un premier temps parser les docs dans une structure PHP et l'afficher dans un tableau, puis récupérer les données et les envoyés dans mysql.



J'aurais besoin de conseil surtout
Faut il que j'utilise des API tel que DOM ou SAX?
Simplexml permet t'il de parser les doc aussi?

Pourriez-vous me conseiller

cordialement

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
26 janv. 2010 à 11:14
Salut,

Parser le XML pour le stocker dans un tableau puis l'injecter dans la BDD, c'est un peu fastidieux. Le mieux est d'injecter les données immédiatement après les avoir parsées.

Pour parser le fichier XML, peu importe l'outil utilisé. Donc non, tu n'es pas obligé d'utiliser un outil existant tel que DOM ou SAX.
SimpleXMLElement sert aussi à parser un fichier XML (la lecture de la doc répond à cette question). A toi de choisir l'outil avec lequel tu es le plus à l'aise, il n'y en a pas un qui soit meilleur que l'autre dans l'absolu.
Je ne connais pas SAX, mais d'après ce que j'en ai lu, il favorise l'approche événementielle. Pas forcément ce qui est le plus adapté à ton cas.
Quant à DOM, il est très puissant pour manipuler un fichier XML (lecture, modification à la volée, création d'éléments, etc). SimpleXMElement est très simple et s'utilise de manière enfantine dans une boucle foreach.

Explique un peu quel est ton problème, à quoi ressemble ton fichier XML source. La question a déjà été abordée récemment ici

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
isiselo Messages postés 2 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 26 janvier 2010
26 janv. 2010 à 11:36
Merci pour ta réponse sa m'a déjà bien aidé,

en ce qui concerne le fichier XML voici un exemple
<Record Component="" Type="" Time="" HostName="" Interval="">
< Name="" Value="" DomainID="" ID="" />
< Name="" Value="" DomainID="" ID="" />
< Name="" Value="" DomainID="" ID="" />

en faite comme tu disais il faudrait que j'arrive à faire parser les données et les injecter directe dans ma base,seul hic en faite c'est que les données extraites doivent être dispatcher après dans des bases différentes, je sais pas si je m'explique correctement^^^.pas évident à expliquer
j'ai essayé un truc de ce style mais sans succès sa n'affiche rien du tout

$Name = simplexml_load_file('test.xml');
foreach ($Name->name as $name) {
echo "DomaineID : $name['domaineid'] \n";
echo "Value : {$name->value} \n";
5.echo "Prix: {$produit->prix} \n";
0