Foros del Web » Programando para Internet » Javascript »

Problema codificación XML

Estas en el tema de Problema codificación XML en el foro de Javascript en Foros del Web. Muy buenas a tod@s, No estoy seguro de si el foro de Javascript es el más adecuado pero allá voy: Desde un formulario recojo ciertos ...
  #1 (permalink)  
Antiguo 02/08/2011, 04:41
 
Fecha de Ingreso: enero-2011
Ubicación: Bilbao
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema codificación XML

Muy buenas a tod@s,

No estoy seguro de si el foro de Javascript es el más adecuado pero allá voy:

Desde un formulario recojo ciertos datos y con ellos genero un string con formato XML, que posteriormente envio mediante NUSOAP (PHP) a un servidor. Este servidor recoge ese string y genera un fichero .xml

El problema está en que el string no le llega correctamente formateado al servidor.

Pongo ejemplos:

1. Genero el string(xml) a mano con javascript:

Código PHP:
xml_ajustes = "<?xml version='1.0' encoding='utf-8' standalone='yes'?<LDeviceSettings>";
    
var xml = "
<LN identNodo='" + choosenId + "'>";

//...

xml_ajustes = xml_ajustes + xml + "
</LN></LDeviceSettings>";

//...
2. Envio el string como parámetro de SOAP con PHP:

Código PHP:
$xmlAjustes $_POST['xml_ajustes'];

//...

$Ok $client->call(
                
'setAjustes',
                array(
'xmlAjustes' => $xmlAjustes), 
                
"uri:$server_url/$server_script",
                
"uri:$server_url/$server_script#setAjustes"
); 
3. Recojo el string y genero el fichero XML con PHP:

Código PHP:
function setAjustes ($xmlAjustes)
{
//...       
file_put_contents($path$xmlAjustes);
//...

Al principio en el servidor, creaba un objeto DOM de PHP y cargaba el string con la funcion loadXML() pero al no estar correctamente formateado no lo reconocía como XML.

Mi pregunta es: ¿Cómo tengo que generar ese string a mano con javascript para que al servidor de SOAP le llegue intacto?

Gracias de antemano y perdón si este no es el lugar correcto para esta cuestión
  #2 (permalink)  
Antiguo 02/08/2011, 04:46
 
Fecha de Ingreso: enero-2011
Ubicación: Bilbao
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema codificación XML

Perdón que se me ha olvidado poner un ejemplo de cómo recibe el servidor el string:

<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><LDeviceSettings><LN identNodo=\"0\"><DOI identAjuste=\"0\"><Val sGroup=\"1\">0</Val></DOI></LN></LDeviceSettings>

Última edición por RobZab; 02/08/2011 a las 04:53
  #3 (permalink)  
Antiguo 02/08/2011, 11:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Problema codificación XML

buenas,
¿cómo estas seguro que es problema de codificación? si tu servidor recibe bien el string de parte del navegador, es decir que tenga formado correctamente la sintaxis xml, entonces probablemente el problema es el servidor SOAP a quien le envias los datos. si intento analizar el código javascript, me da la impresión de que la sintaxis xml no es correcta. sin embargo, según el ejemplo parece que lo recibes bien. prueba a ver a codificar el contenido a utf8 antes de enviarlo desde el servidor a SOAP.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 03/08/2011, 02:27
 
Fecha de Ingreso: enero-2011
Ubicación: Bilbao
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema codificación XML

Hola Zerokilled,

Con el firebug he comprobado el string que manda por POST al cliente de NUSOAP y lo manda correctamente, es decir, con el formato xml bueno.

Deduzco que desde que el cliente SOAP lo recibe/envía hasta que el servidor SOAP lo recibe pasa algo.

He probado con diferentes codificaciones (utf8_encode, utf8_decode) en diferentes puntos (A la hora de consumir el servicio web, a la hora de recibir el dato, etc) pero no cambia nada.

Al final he optado por hacer un str_replace sustituyendo las contrabarras por "" y me funciona, pero me parece una solución un tanto... ¿fea?

No sé la verdad...

Etiquetas: codificar;, generar;, xml
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 18:29.