IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XML] [SAX] Comment Parser du XML


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut [XML] [SAX] Comment Parser du XML
    Bonjour,

    Je suis sur un projet ou dans une première phase il faut récupérer des données dans plusieurs flux XML.
    Ces flux XML contiennent tous les mêmes données sur des produits de commerce (nom, description, prix, disponibilité, frais de port etc...).
    Il faut classer ces informations dans un tableau puis les enregistrer dans une table.
    Le problème est que les balises de chaque flux sont différentes, ils ont tous un gabarit différent.
    Par exemple pour les frais de port ca peut être <frais>, <fraisdeport>, <fraisport>, <frais_de_port>, <port> etc...
    Et il y a aussi un problème de chemin, <frais_de_port> peut très bien être dans <prix> comme il peut ne pas y être.

    J'ai donc eu l'idée d'enregistrer les gabarits dans une table en disant par exemple que prix->frais_de_port correspond aux frais de ports et à la boutique 6.
    En effet j'ai lu la doc et d'après ce que j'ai compris il faut enregistrer sous cette forme un->deux->trois.
    Si vous pouviez me confirmer ceci, merci.

    Mais je n'ai pas tout a fais saisi comment parser.
    C'est pour celà que je vous demande de l'aide, si vous pouviez m'expliquer ou me passer l'adresse d'un dictaciel clair (car la doc est nuageuse pour moi ^^)

    Merci pour votre aide, ludo.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    La version de php est à prendre en compte pour commencer. En effet, sous php4 vous aurez DOM XML alors que sous php5 vous trouverez plutôt SimpleXML et DOM. Voir même utiliser une méthode de parsing Sax

    Profitez-en pour vérifier, à l'aide de phpinfo, qu'une telle extension est également disponible. Quelle taille font ces fichiers ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Alors c'est PHP 5 qui est utilisé, je pourrais donc utiliser simplexml.
    Quant aux fichier, ils seront assez volumineux, ce sont les listes des produits de grands commerces en ligne du genre cdiscount, rueducommerce etc...
    Pourquoi cette question sur la taille des fichiers ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Oui d'autant plus que SimpleXML est plus confortable à utiliser

    Citation Envoyé par Masterlud
    Pourquoi cette question sur la taille des fichiers ?
    La méthode de parsing appelée DOM (qu'utilise également SimpleXML) implique un chargement intégral du document XML en mémoire sous la forme d'un arbre ce qui demande donc plus de ressources et ne convient pas aux fichiers vraiment volumineux. La méthode SAX constitue son "contraire" car il s'agit de réagir (appel d'une fonction dite de callback) à chaque élément rencontré (commentaire, début de balise, fin de balise, ...) et mobilise très peu de ressources. Quoique avec PHP on est limité au niveau de la mémoire (directive memory_limit) et sur le temps d'exécution d'un script (directive max_execution_time). Toutefois sur un serveur dédié, vous pourrez reconfigurer ces paramètres de manière ponctuelle ou non.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Je ne peux donc pas utiliser SIMPLEXML étant donné que mes fichiers sont volumineux ?
    Je dispose d'un serveur dédié.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Si bien sûr, tout dépend ce qu'on appelle volumineux. De toute manière puisque vous possédez un serveur dédié vous pourrez réajuster au besoin les paramètres que je vous ai donné plus haut. (PHP vous affichera des messages d'erreur si ça venait à arriver.)

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/06/2011, 09h43
  2. [C#] Comment parser un flux XML ?
    Par Dunkan dans le forum C#
    Réponses: 1
    Dernier message: 22/09/2006, 13h32
  3. [XML] Comment parser ce fichier XML avec java !
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 13/03/2006, 12h56
  4. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  5. [XML] Comment parser ?
    Par GLDavid dans le forum Modules
    Réponses: 7
    Dernier message: 03/03/2005, 02h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo