Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/05/2011, 12:28
Avatar de Ale_VH
Ale_VH
 
Fecha de Ingreso: abril-2011
Ubicación: Barcelona
Mensajes: 21
Antigüedad: 13 años
Puntos: 0
Pregunta XML con CDATA en PHP no funciona!!!

Buenas a todos, antes que nada quiero decir que si este tema ya lo tocaron, no lo encontré, asi que si alguien me puede redirigir, buenísimo. Bueno, el problema que tengo es que tengo que crear un foro en PHP, guardando las entradas en xml, la estructura del xml es la siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<tema>

<comentario valor="Principal">
<usuario>Ale</usuario>
<nombretema>Primer Tema</nombretema>
<contenido><![CDATA[Texto sin problemas]]></contenido>
</comentario>

<comentario>
<usuario>Ale</usuario>
<nombretema>Respuesta Primer Tema</nombretema>
<contenido><![CDATA[Otro texto sin problemas...]]></contenido>
</comentario>

<comentario>
<usuario>Ale</usuario>
<nombretema>Respuesta Primer Tema</nombretema>
<contenido><![CDATA[Con el siguiente acento se va todo a la mier... ]]></contenido>
</comentario>

</tema>

Como podrán apreciar, esta todo ok (o al menos yo lo veo ok). Si prestan atención a los comentarios, dentro del 1º y el 2º hay contenido que no da problemas, hasta que llego al 3, pongo un acento y adiós armonía. el error que me sale es el siguiente:

( ! ) Warning: DOMDocument::load() [domdocument.load]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE1 0x5D 0x5D 0x3E in file:///C:/wamp/www/Foro%20PHP%20&%20XML/temas/Primer%20Tema.xml, line: 8 in C:\wamp\www\Foro PHP & XML\visualizartema.php on line 17
Call Stack
# Time Memory Function Location
1 0.0015 392880 {main}( ) ..\visualizartema.php:0
2 0.0021 394184 DOMDocument->load( ) ..\visualizartema.php:17

El código que uso para visualizar el archivo es el siguiente:

foreach($tema as $com){
$comentario = $com->getElementsByTagName("comentario");
if($comentario->item(0)->hasAttribute("valor")){
$nombreprincipal = $archivo->getElementsByTagName("nombretema");
$_SESSION["nombretema"] = $nombreprincipal->item(0)->nodeValue;
}
foreach($comentario as $ele){
$usuario = $ele->getElementsByTagName("usuario");
$nombretema = $ele->getElementsByTagName("nombretema");
$contenido = $ele->getElementsByTagName("contenido");

echo "Usuario:<strong> ".$usuario->item(0)->nodeValue."</strong><br/><br/>";
echo "Nombre del Tema:<strong> ".$nombretema->item(0)->nodeValue."</strong><br/><br/>";
echo "Contenido:<br/>".$contenido->item(0)->nodeValue. "<br/><br/>";
}
}

Les agradecería que si alguien sabe como solucionar el error que me da, que me lo diga!!! muchas gracias gente! a ver si en este, mi segundo tema creado en este foro, encuentro la respuesta... salud!