2010-09-26 12 views
4

Quelle est la meilleure pratique pour réparer les fichiers XML mal formés avec PHP? Par exemple, la partie CDATA contient des caractères illégaux. Avec des expressions régulières? Ou exécuter des outils de ligne de commande Linux?Comment réparer un fichier XML mal formé?

+0

Cette question est assez vague * *, peut-être vous devez spécifier en profondeur le type de documents malformés que vous avez à traiter. XML est ** extrêmement ** général, donc une solution générale n'est pas vraiment réalisable. – ZJR

+0

Les parseurs XML sont assez stricts, certains prétraitements peuvent parfois faciliter cela, mais pour obtenir une réponse, vous devez fournir plus de détails. Une supposition farfelue: avec ** XML ** voulez-vous vraiment dire, peut-être, ** XHTML **? – ZJR

+0

"avec des expressions régulières?" Certainement pas. Voir http://stackoverflow.com/questions/701166/can-you-provide-some-examples-of-why-it-is-hard-to-parse-xml-and-html-with-a-rege – delnan

Répondre

6

Tidy

Tidy est une liaison pour le HTML Tidy utilitaire propre et la réparation qui permet vous non seulement propre et sinon manipuler des documents HTML, mais aussi traverse l'arbre du document.

// Specify configuration 
$config = array(
      'indent'  => true, 
      'input-xml' => true, 
      'output-xml' => true, 
      'wrap'  => false); 
// Tidy 
$tidy = new tidy; 
$tidy->parseFile('sample.xml', $config); 
$tidy->cleanRepair(); 
// Output 
echo $tidy; 
+0

grâce Mads, exactement ce dont j'ai besoin :) – Ain

+0

C'est parfait. Mais j'ai besoin de sauvegarder la chaîne réparée dans un fichier. J'ai essayé 'file_put_contents (" new.xml ", $ tidy)' mais le fichier new.xml est créé sans contenu. – vidhya

Questions connexes