Estoy escribiendo un script para pasar los resultados de consultas MySQL a XML, mi tabla en MySQL esta con CHARACTER SET en UTF8 al igual que los campos de texto.
CUando imprimo el XML generado me salen caracteres raros, así que usé la función str_replace pero al correr el script me sale un error:
Código PHP:
Error de lectura XML: entidad no definida
Ubicación: http://localhost/xml/php/ToXML.php
Número de línea 6, columna 20:
<resena>Este artículo te mostrará como coger información almacenada en una base de datos MySQL y pasarla a X</resena>
---------------------------------^
Código PHP:
header("Content-type: text/xml");
require("global/class.php");
$inicl = new DB;
$resultado = $inicl->Consult("SELECT * FROM articulos");
$xml = "<?xml version = "1.0\"?> \n";
$xml .= "<datos>\n";
for ($x = 0; $x < $inicl->NumberRows($resultado); $x++) {
$fila = $inicl->CreateAssocQuery($resultado);
$xml .= "\t <articulo> \n";
$xml .= "\t\t <id>" . $fila["id"] . "</id> \n";
$xml .= "\t\t <titulo>" . $fila["titulo"] . "</titulo> \n";
$fila["resena"] = str_replace("á", "á", $fila["resena"]);
$fila["resena"] = str_replace("é", "é", $fila["resena"]);
$fila["resena"] = str_replace("í", "í", $fila["resena"]);
$fila["resena"] = str_replace("ó", "ó", $fila["resena"]);
$fila["resena"] = str_replace("ú", "ú", $fila["resena"]);
$xml .= "\t\t <resena>" . $fila["resena"] . "</resena> \n";
$xml .= "\t\t <descripcion>" . $fila["descripcion"] . "</descripcion> \n";
$xml .= "\t </articulo> \n";
}
$xml .= "</datos>";
echo $xml;