Estoy trabajando con un web service con el que conecto con nusoap de php y cuya función es enviar al web service un XML con unos datos. Hasta ahora no había tenido ningún problema porque todos los datos que se enviaban debían ser en mayúsculas sin acentos y sin símbolos, pero actualmente actualizaron el service y ahora se permite enviar todos tipo de caracteres como el ampersand o el apostrofe & ' con la condición de que el XML se les envié en ISO-8859-1
Os pongo un ejemplo del código que estoy utilizando para que os podáis hacer una idea:
Código PHP :
$clsNusoap = new SoapClient('https://www.dominio.es/servicio/asix/SolicitudService?wsdl'); //me piden que envié el XML codificado en base 64 y en ISO-8859-1 $xmlEncode = base64_encode ('<?xml version="1.0" encoding="ISO-8859-1"?> <xmlEjemplo id="Ejemplo"> <registro> <id>0</id> <nombre>Ramón</nombre> <razon_social>Ramon & L'est'uca</razonSocial> </registro> </xmlEjemplo>'; //una vez codificado en base 64 lo envió mediante el método registrarXml $resultado = $clsNusoap->__soapCall("registrarXml", array('xml' => $xmlEncode)); //Y el resultado devuelto es error en el formato XML
En cambio si quito el ampersand y el apostrofe del nodo razón social del XML y pruebo de registrarlo nuevamente entonces si funciona bien.
Así que la pregunta es: ¿debo realizar algún proceso adicional para enviar el XML en ISO-8859-1 para que me acepte los caracteres especiales?
Un saludo y gracias de antemano