Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/05/2011, 08:35
israbart
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: Error Simplexml_load_file Input is not proper UTF-8

Según lo que he investigado y preguntado en la red este error se debe a que el archivos xml contiene caracteres especiales no propios de UTF-8.
Para solucionar este problema primero se debe abrir el archivo con fopen, darle tratamiento a los acentos y despues llamar a simplexml_load_string.

Aqui les dejo el codigo que utilize para el que tenga el mismo error:

Código PHP:
$ruta "archivo.xml";

if (
is_file($ruta)) {
     if (
$da fopen($ruta"r")) {
          while (
$aux fgets($da)) {
               
$contenido .= $aux;
          }
          
fclose($da);
          
$aux codificarAcentos($contenido);
          
$aux html_entity_decode($aux,ENT_QUOTES"UTF-8");
          
$xmlObject simplexml_load_string($aux);
     }
}

function 
codificarAcentos($texto)
{
    
$texto str_replace("Á","Á",$texto);
    
$texto str_replace("É","É",$texto);
    
$texto str_replace("Í","Í",$texto);
    
$texto str_replace("Ó","Ó",$texto);
    
$texto str_replace("Ú","Ú",$texto);
    
    return 
$texto;

Se ve un poco redundante pero funciona.

Saludos