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 :

[DOM] Problème de traitement récursif, nombre de noeuds fils


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [DOM] Problème de traitement récursif, nombre de noeuds fils
    Bonjour,

    j'ai quelques soucis quant à l'utilisation du DOM avec PHP5.
    mon projet est le suivant : je reçois une ou plusieurs commandes clients dans un fichier au format XML que je dois traiter afin d'intégrer toutes les infos dans l'ERP de ma société (MFG PRO v7.3k pour ceux qui connaissent). Celui-ci étant assez ancien, les données à traiter seront donc converties en fichier csv. J'ai choisi, pour ce faire, la solution Apache/PHP5.

    Mon permier soucis est le suivant : j'arrive bien à traduire l'ensemble du fichier en csv (avec une fonction récursive) seulement une commande peut être différente d'une autre avec par exemple une ou plusieurs descriptions (ou aucune comme dans l'exemple suivant)

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <cmd>
      <num_cmde>123456</num_cmde>
      <article>clavier</article>
      <description>
         <desc:desc1>blablabla</desc:desc1>
         <desc:desc2>blablabla</desc:desc2>
      </description>
    </cmd>
    <cmd>
      <num_cmde>987654</num_cmde>
      <article>souris sans fil</article>
    </cmd>

    Je n'arrive donc pas à gérer proprement ce genre de cas pour avoir toutes mes lignes de commandes formattées de la même façon.
    Et mon code commance à ressembler à une usine à gaz.

    Mon deuxieme soucis est que quand je veux connaitre le nombre de fils d'un noeud, il me ramène des choses incohérentes : par exemple un noeud possède 2 fils, $noeud->length va me rammer 5 (2 XML_ELEMENT_NODE et 3 XML_TEXT_NODE) et je ne comprends pas pourquoi.

    Merci pour votre aide !!!

    Erivoil

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par erivoil
    Mon deuxieme soucis est que quand je veux connaitre le nombre de fils d'un noeud, il me ramène des choses incohérentes : par exemple un noeud possède 2 fils, $noeud->length va me rammer 5 (2 XML_ELEMENT_NODE et 3 XML_TEXT_NODE) et je ne comprends pas pourquoi.
    Ce n'est pas incohérent, il y a bien cinq noeuds fils :
    - un noeud textuel (avec des espaces, un retour à la ligne, des tabulations... que sais-je ! c'est bien du texte tout ça en fait)
    - un élément
    - un noeud textuel
    - un élément
    - un dernier noeud textuel

    En fait il va falloir faire des tests pour ne pas prendre en compte les noeuds textuels, qui viennent du formatage du document. Tu pourrais utiliser getElementsByTagName, mais l'inconvénient c'est que tu récupéreras tous les descendants de même nom, pas seulement les fils. A toi de voir si ça convient à ton appli.

  3. #3
    Candidat au Club
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse et aussi d'avoir déplacé mon post, oups...

    Pour le nombre de fils, j'ai effectivement fait un test en ne tenant compte que du type XML_ELEMENT_NODE mais c quand même pas évident à gérer.

    Merci pour cette première réponse.
    Erivoil

Discussions similaires

  1. [DOM] DOM - Problème de mise à jour d'un noeud
    Par Lebas dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 09/09/2010, 10h03
  2. [DOM] Problème de retour chariot après les noeuds
    Par Phenomenium dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/03/2008, 13h58
  3. [DOM] Problème de compte de noeud
    Par sourivore dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 28/01/2008, 13h31
  4. [DOM] problème de suppression de noeuds
    Par -Ju- dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/05/2007, 19h18
  5. [DOM] Problème d'ajout d'un noeud
    Par damanium dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 17/05/2006, 19h01

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