Aller au contenu

Sujets conseillés

Posté

bonjour, j'ai un flux xml d'un catalogue de produits avec plus de 5000 entrés donc il faudrait les mettre dans une base de donné pour pouvoir ensuite les afficher, alors éxiste t-il des scripts pour les mettres dans une base et pourquoi pas les afficher (ça sauverait du temps :D )

merci

Posté

Salut,

En fait si ton flux XML suit un standard, fait une recherche sur ce standard pour voir les outils existants.

L'integration de ton flux va dependre de 2 parametres assez important:

1) le schema de ton flux XML (comment lire un produit?)

2) l'organisation de ta base de donnees (ou le mettre?)

Sans ces deux informations, il est probable que tu trouves un outil mais avec beaucoup de recherche.

Avec ces deux informations, il est probable que des personnes te proposent des scripts adaptés à ton cas... Dans ce cas: Quel langage peux tu ou veux tu utiliser pour ce script?

Posté

la structure de ton xml est assez simple:

chaque produit est entouré des balises <produit></produit>

Puis on retrouve les informations entre balises:

<produit>
<id>1049</id>
<hotelname>Novotel Sydney On Darling Harbour</hotelname>
<rating>4</rating>
<lien>http%3A%2F%2Ftracking.publicidees.com%2Fclic.php%3Fpartid%3D3874%26progid%3D104%26adfactory_type%3D12%26ref_pdt%3D1049</lien>
<description>Le Novotel Sydney On Darling Harbour est situé à côté du centre de convention et d'exposition de Sydney avec une liaison directe et commode vers le centre des affaires (CBD) par l'intermédiaire du monorail. Parfaitement situé à quelques minutes des attractions les plus populaires de Sydney comme l'aquarium de Sydney, le musée (Powerhouse Museum) et Star City.</description>
<hotelinfo>Service de baby sitting, Centre d'affaires, Bar à cocktails, Salles de conférence, Chambres non fumeur, Parking (payant), Réception, Restaurant, Sauna, Piscine, Court de tennis</hotelinfo>
<roominfo>Climatisation, Sèche cheveux, Chauffage, Coffre fort dans la chambre, Fer et table à repasser, Minibar, Films à la carte, Radio, Réfrigérateur, Nécessaire pour thé et café, Téléphone, Télévision</roominfo>
<img>http%3A%2F%2Fwww.hotelclub.net%2Fenter.asp%3Fid%3D24616%26%2338%3Bru%3Ddirecthotel.asp%3Fid%3D9</img>
<prix>noprice</prix>
<currency>AUD </currency>
<city>Sydney</city>
<cityid>1</cityid>
<country>Australie</country>
<countryid>3</countryid>
</produit>

Tu pourrais donc faire un fichier php qui agirait de cette façon (le code est faux, c'est juste pour donner une idée):

// [...] Code pour sélectionner chaque groupe <produit>...</produit> [...]
foreach($balise_dans_produit AS $nom_balise => $contenu_balise) // Pour chaque balise (<id>, <city>, <country>...)
{
$$nom_balise = $contenu_balise; // on crée une variable du nom de la balise contenant le texte du xml
echo $$nom_balise;
}

... Mais je ne sais pas comment sélectionner tout le groupe entre <produit> et </produit> :unsure:

Posté

il faut utiliser un parser XML pour parcourir l'arbre.

Par exemple celui de PEAR: http://pear.php.net/package/XML_Parser/

A priori le code doit etre relativement simple. Le seul point qui risque d'etre bloquant est que le fichier fait 15Mo donc je pense qu'il faudra utiliser un buffer pour le lire...

Posté
ok mais il n'éxiste pas de truc qui le rentre au complet dans la base car 5000 entré jvais y passé une vie ;)

<{POST_SNAPBACK}>

Tu vas y passer 2.5 secondes si tu script est codé normalement ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...