Question

J'essaie d'analyser un fichier XML qui contient des accents, mais j'obtiens cette erreur "La chaîne ne peut pas être analysée comme XML". Malheureusement, je ne peux pas travailler sur le fichier XML, car il est téléchargé à partir d'une source externe, donc je me demandais s'il existe un moyen facile de le réparer.

Voici mon code:

<?php
$requestAddress = "test.xml";

// Gets data
$xml_str = file_get_contents($requestAddress,0);

// Parses XML
$xml = new SimplexmlElement($xml_str);
?>

J'ai regardé tout autour mais je ne vois aucune solution au problème, ou du moins je ne les comprends pas! :-)

Était-ce utile?

La solution

Je suppose que file_get_contents() ne prend pas en compte le codage du fichier. Vos accents peuvent être considérés comme des caractères non valides et briser la structure XML.

Utilisation mb_detect_encoding() pour détecter le codage.

Utilisation utf8_encode() Pour convertir vos personnages en UTF-8.

Autres conseils

Assurez-vous que l'encodage est d'accord avec l'en-tête du document (généralement UTF-8).

Si l'encodage (Charset) ne correspond pas, vous pouvez charger le fichier en tant que fichier texte générique, puis convertir le codage de caractères avec le iconv () fonction au bon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top