Foros del Web » Programación para mayores de 30 ;) » Programación General »

Caracteres especiales en XML

Estas en el tema de Caracteres especiales en XML en el foro de Programación General en Foros del Web. Hola gente Necesitaria saber si alguien tiene idea de porque cuando utilizo la funcion de PHP domxml_open_mem o domxml_open_file (porque he provado con las dos) ...
  #1 (permalink)  
Antiguo 12/11/2003, 08:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 4
Antigüedad: 20 años, 4 meses
Puntos: 0
Caracteres especiales en XML

Hola gente
Necesitaria saber si alguien tiene idea de porque cuando utilizo la funcion de PHP domxml_open_mem o domxml_open_file (porque he provado con las dos) me dice que no lo puede habrir si el XML posee caracteres especiales como ª, º, vocales con acento o cualquier equivalente de estos caracteres en HTML por ejemplo el equivalente de º es ª
Desde ya muchas gracias!!!.
Saludos.

Alejandro.
  #2 (permalink)  
Antiguo 12/11/2003, 09:40
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 21 años, 11 meses
Puntos: 2
Lo que sucede es que para XML esos caracteres son invalidos, lo que tienes que hacer es utilizar una entidad ó ó la referencia de caracteres para esa letra.. es decir.

En ves de decir esto:
Código:
<?xml version="1.0" ?>
<texto>Esto es un texto con tílde</texto>
Pones esto:
Código:
<?xml version="1.0" ?>
<texto>Esto es un texto con t& #237;lde</texto>
Ya con esto, no te debe marcar error.. has una prueba a ver que tal.. si te da bien.. si no probamos otra solución, pero igual si son demasiados caracteres extraños te doy la solución.

Nota: Dice t& #237; pero es sin el espacio antes del "#", se lo tuve que poner porque sino me mostraba el caracter í en el mensaje.
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639

Última edición por cubis; 12/11/2003 a las 09:49
  #3 (permalink)  
Antiguo 12/11/2003, 10:01
 
Fecha de Ingreso: noviembre-2003
Mensajes: 4
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias por el Dato tienes idea si existe alguna función php que reemplace todos estos caracteres por la representacion esa que tu me indicas (Unicode por lo que creo no???)
  #4 (permalink)  
Antiguo 12/11/2003, 10:51
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 21 años, 11 meses
Puntos: 2
La verdad no.. eso puedes preguntarlo en el foro de PHP, allá seguro te ayudan.

Buena suerte!
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639
  #5 (permalink)  
Antiguo 12/11/2003, 11:50
 
Fecha de Ingreso: noviembre-2003
Mensajes: 4
Antigüedad: 20 años, 4 meses
Puntos: 0
Otra vez yo!!!
La siolucion que me diste funciona correctamente, Gracias!!!
Ahora otro favor sabes donde puedo conseguir una lista con todos los caracteres invalidos de XML, porque mi problema es que el XML contiene datos ingresados por el usuario y como no se que es lo que me puede cargar el usuarios debo tomar el peor caso ¡¡¡¡reemplazar todos!!!!.
Bueno gracias nuevamente.
  #6 (permalink)  
Antiguo 12/11/2003, 21:29
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 21 años, 11 meses
Puntos: 2
Creo.. no estoy seguro.. que alguien aclare esto si me equivoco.. yo creo que todo depende de la codificación que uses.. en unas es validas unas letras, pero en otras no... claro que hay ciertos caracteres que en cualquier codificación son invalidos y que se deben cambiar por entidades, que son.

&, <, > no recuerdo los otros.... Mmm... creo que " también es uno.. si quieres te averiguo los otros, pero son como 2 más.

Ya en cuanto a lo de la lista.. pues todo depende como te dije de la codificación (creo)... así que... buscate algo más de info en Google.


Salu2
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639

Última edición por cubis; 12/11/2003 a las 21:42
  #7 (permalink)  
Antiguo 13/11/2003, 06:16
 
Fecha de Ingreso: noviembre-2003
Mensajes: 4
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias por todo realmente me sirvio mucho
Alejandro
  #8 (permalink)  
Antiguo 13/11/2003, 07:17
Avatar de cubis  
Fecha de Ingreso: abril-2002
Ubicación: Medellín
Mensajes: 1.040
Antigüedad: 21 años, 11 meses
Puntos: 2
Me alegra mucho y de nuevo buena suerte!
__________________
[color=gray][size=1]Usuario Registrado de Linux #315639
  #9 (permalink)  
Antiguo 02/02/2008, 00:31
Avatar de ok2000  
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Caracteres especiales en XML

Cita:
Iniciado por ladillaneco Ver Mensaje
Hola gente
Necesitaria saber si alguien tiene idea de porque cuando utilizo la funcion de PHP domxml_open_mem o domxml_open_file (porque he provado con las dos) me dice que no lo puede habrir si el XML posee caracteres especiales como ª, º, vocales con acento o cualquier equivalente de estos caracteres en HTML por ejemplo el equivalente de º es &ordf;
Desde ya muchas gracias!!!.
Saludos.

Alejandro.
la funcion htmlentities($variable) convierte ¿cómo estás? en & iquest;c& oacute;mo est& aacute;s?
  #10 (permalink)  
Antiguo 04/02/2008, 14:26
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 10 meses
Puntos: 8
Re: Caracteres especiales en XML

Yo eh probado con lo que dices ok2000 pero me sale el siguiente error:
Código PHP:
La operación se ha completado correctamenteError al procesar el recurso http://localhost/xml/php/ToXML.php. Línea 6, Pos...

   
<resena>Este art&iacute;culo te mostrar&aacutecomo coger informaci&oacute;n almacenada en una base de... 
Estoy escribiendo un script para pasar el resultado de una query en MySQL a XML.
__________________
El aprendiz.
  #11 (permalink)  
Antiguo 05/02/2008, 05:46
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 3 meses
Puntos: 61
Re: Caracteres especiales en XML

Para estos casos es mejor usar:

utf8_decode($variable);

A mi me funciona!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #12 (permalink)  
Antiguo 05/02/2008, 07:39
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 10 meses
Puntos: 8
Re: Caracteres especiales en XML

Hola karlankas, lo hice como dijiste, ya no me sale el error, pero siguen saliendo otros caracteres, ahora sale así:
Código PHP:
<resena>
Este art?lo te mostrar?omo coger informaci?lmacenada en una base de datos MySQL y pasarla a X
</resena
Cuando debería salir así:
Código PHP:
<resena>
Este artículo te mostrará como coger información almacenada en una base de datos MySQL y pasarla a XML
</resena
__________________
El aprendiz.
  #13 (permalink)  
Antiguo 05/02/2008, 09:43
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 3 meses
Puntos: 61
Re: Caracteres especiales en XML

Ahora sólo te queda definir el sistema de codificación de caracteres de tu archivo XML como ISO 8859-1. Así:


<?xml version='1.0' encoding='ISO-8859-1'?>

Y ya está! (eso creo)
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #14 (permalink)  
Antiguo 05/02/2008, 14:10
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 10 meses
Puntos: 8
Re: Caracteres especiales en XML

Todo sigue igual.
__________________
El aprendiz.
  #15 (permalink)  
Antiguo 12/02/2008, 12:07
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 3 meses
Puntos: 61
Re: Caracteres especiales en XML

$archivo = simplexml_load_file('proyectos.xml');

foreach ($archivo->proyecto as $proyecto) {

echo "<p>" . utf8_decode ($proyecto->nombre) . "</p>";
echo "<p>".utf8_decode ($proyecto->memoria)."</p>";
}
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #16 (permalink)  
Antiguo 16/08/2008, 13:27
 
Fecha de Ingreso: agosto-2008
Ubicación: Veracruz
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Caracteres especiales en XML

Hola que tal!! soy nuevo en el foro estoy programando haciendo uso de archivos xml en php y he tenido una serie de problemas....

quisiera saber si puedo hacer referencia a un tag que contiene un caracter no permitido por php es decir... mi xml es el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<packet version="1.4.2.0">
<database>
<get-db>
<result>
<filter-id>arturocarrillo.com</filter-id>
<name>nuevadb</name>
<type>mysql</type>
<domain-id>1</domain-id>
<db-server-id>1</db-server-id>
<default-user-id>0</default-user-id>
</result>
</get-db>
</database>
</packet>

si pueden observar hay dos tags que contienen el caracter "-" (get-db y filter-id). Cuando quiero hacer referencia a ellos mediante php hago algo similar a lo siguiente:

$nodo=$xml->packet->database->get-db->result->filter-id;
esto me provoca un error php que dice:
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in C:\wamp\www\API\login.php on line 178
y no he encontrado la manera de poder hacer referencia a estos objetos...
alguien puede ayudarme??? gracias de antemano
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.