Aquí una función php que utilizo al generar archivos XML, para «limpiar» cadenas de texto con caracteres no permitidos en XML como «<", ">«, «&», «‘». Usando arrays para guardar las cadenas a reemplazar con str_replace():
function limpioCaracteresXML($cadena){
$search = array("<", ">", "&", "'");
$replace = array("<", ">", "&", "&apos");
$final = str_replace($search, $replace, $cadena);
return $final;
}
Un ejemplo de uso al generar el xml:
<title><?php echo limpioCaracteresXML($titulo); ?></title>
<pubDate><?php echo date("D, d M Y H:i:s O", $fecha)?></pubDate>
<link><?php echo limpioCaracteresXML($link)?></link>
<description><?php echo limpioCaracteresXML($descripcion); ?></description>
<category><?php echo limpioCaracteresXML($categoria); ?></category>
</item>
Agradezco tu comentario 🤘