Tengo un archivo php que imprime un xml basado en un MySql db.Error XML en ampersand (&)
Me sale un error cada vez exactamente en el punto donde hay un & signo.
Aquí es un poco de php:
$query = mysql_query($sql);
$_xmlrows = '';
while ($row = mysql_fetch_array($query)) {
$_xmlrows .= xmlrowtemplate($row);
}
function xmlrowtemplate($dbrow){
return "<AD>
<CATEGORY>".$dbrow['category']."</CATEGORY>
</AD>
}
La salida es lo que quiero, es decir, el archivo de salida a la categoría correcta, pero aún así da un error.
El error dice: xmlParseEntityRef: ningún nombre
Y entonces se apunta al carácter exacto que es un signo &.
Esta queja sólo si el $dbrow['category']
es algo con un & signo en él, por ejemplo: "& coches camiones", o "ordenadores & teléfonos".
¿Alguien sabe cuál es el problema?
BTW: Tengo la codificación establecida en UTF-8 en todos los documentos, así como la salida xml.
(adición, pero para el cartel) Así use & para escapar correctamente, aunque en lugar de la interpolación de cadenas (muda) debe usar algo que * entienda * XML (por ejemplo, ¿qué sucede cuando la entrada contiene "<"? –
O, m mineral compacto, 'htmlspecialchars ($ string, ENT_QUOTES);' – Wrikken
envolviendo matthy