Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2007, 11h12   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 28
Points : 8
Points : 8
Par défaut [EXPAT] Problème parser XML EXPAT

bonjour,

j'ai un souci avec le parser Expat,
je parse mon fichier XML pour mettre le contenu dans une bdd
Et de manière aléatoire, les données de certains champs sont tronquées

petit exemple :
quand on en arrive a parser ca :<numero><![CDATA[8333932]]></numero>
il arrive que le parser ne me remonte que "3932" au lieu de l'ensemble de la chaine.

Quelqu'un a-t-il une idée de ce que ca peut etre ?
zan001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 11h29   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
php4 ? php5 ?
Si tu es sous php5, pourquoi ne pas utiliser SimpleXML ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 11h49   #3
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 3
Points : 3
Tu peux aussi utiliser le DOM avec des boucles sur les node....
fifftyoneplayer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 15h37   #4
Invité régulier
 
Inscription : novembre 2004
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 28
Points : 8
Points : 8
Merci pour vos réponses,

pour Mr N. c'est du php4 sinon j'aurai utilisé simpleXML

pour fifftyoneplayer mon fichier xml fait 30Mo, pas efficace pour du DOM qui charge la totalité du fichier en memoire

mais j'ai trouvé la solution, je la donne donc au cas ou d'autres aurait le pb.
en fait c un probleme de taille de buffer qui fait que je recois le contenu de ma balise en 2 parties.
Comme je ne concatenais pas les données recu, je ne gardais en memoire que la seconde partie

Donc si vous utilisez Expat, n'oubliez pas de concatener
zan001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 15h39   #5
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Ok
Par contre je ne pense pas que SimpleXML aurait supporté ton fichier de 30Mo car il repose sur dom...
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h04   #6
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 3
Points : 3
Merci bien zan001 c'est bon a savoir...
fifftyoneplayer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2007, 09h48   #7
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Citation:
Envoyé par zan001
Donc si vous utilisez Expat, n'oubliez pas de concatener
C'est valable pour tous les parseurs implémentant SAX, et dans tous les langages : ne jamais se baser sur le principe que les caractères contiguës sont transmis en une seule fois, ce n'est absolument pas garanti.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h32.


 
 
 
 
Partenaires

Hébergement Web