SimpleXML et noeud fermé : impossible de parser

SimpleXML et noeud fermé : impossible de parser - PHP - Programmation

Marsh Posté le 26-11-2007 à 18:15:04    

salut,
 
dans mon flux j'ai des noeuds qui normalement on cette forme :  

Code :
  1. <noeud></noeud>


 
sauf que quelques fois ce noeud est fermé mais jamais ouvert, donc simpleXML plante.
 
Auriez vous une astuce pour eviter ca ?

Reply

Marsh Posté le 26-11-2007 à 18:15:04   

Reply

Marsh Posté le 26-11-2007 à 19:45:30    

nœud fermé sans être ouvert = pas un document XML
 
C'est donc normal que simpleXML plante.
 
Seul solution parser le document à la main pour le rendre compatible XML (j'espere que t'aime faire du bateau car tu va galérer)


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 26-11-2007 à 19:46:36    

le fichier est tres lourd :(
comment faire a part contacter les mecs ? rien ?

Reply

Marsh Posté le 26-11-2007 à 20:17:19    

les règles d'eciture d'un xml ne sont pas nombreuse mais elles sont critique en cas de la moindre erreur (c'est sure ca change du html).
 
Si php peut pas corriger soit c'est à ceux qui crée l'xml de corriger leurs erreurs (c'est la solution la plus logique et la plus simple). Sinon faire corriger ton fic par un autre tiers (un prog ecrit en c par exemple), mais c'est lourd en dev et reste du bricolage.
 
bonne chance ...
 


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 26-11-2007 à 20:32:06    

arggg

Reply

Marsh Posté le 26-11-2007 à 20:56:38    

passer par SAX serait la solution ?

Reply

Marsh Posté le 27-11-2007 à 11:31:09    

je pense pas.
En effet sax parcours le document au fur et à mesure, donc il ne plantera peut etre pas tout de suite, mais si t'a pas un doc xml valid tu t'en sortira jamais complètement


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 28-11-2007 à 03:13:05    

XMlReader tu peux lire ton fichier comme un flux, et même pour ce genre de noeur ça plante pas car il ne crée pas d'élément DOM (si j'ai bien compris). Donc tu faire un script qui transforme ce genre de balises en une balise autofermante. Ca marche pas trop mal, je suis en train de parser un fichier GML de 500 mo pour le mettre en base et ça prend à peine une vingtaine de minutes.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed