Buenos días.
Llevo varios días peleándome con un
parseo XML y ya no sé qué más probar...
Si me pudieran aconsejar alguna opción les estaría agradecido.
Estoy consumiendo un
WebService mediante
cURL y todo funciona como debe.
Código PHP:
Ver original 'Content-Type: text/xml; charset=utf-8',
'SOAPAction: "'.$action.'"',
);
/// OPCIONES cURL
CURLOPT_URL => "$url",
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $param,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_SSL_VERIFYPEER => false,
);
/// OPCIONES cURL
Haciendo un
var_dump($respuesta) el sistema me devuelve un
string con el XML codificado a html tipo
htmlentities():
Impresión en pantalla:
Código HTML:
Ver original<Operaciones><Error><codigo>COD-00000</codigo><mensaje>Mensaje de error del sistema</mensaje></Error></Operaciones>
Código fuente:
Código HTML:
Ver original<Operaciones><Error><codigo>COD-00000</codigo><mensaje>Mensaje de error del sistema</mensaje></Error></Operaciones>
Este mismo
WebService también lo tengo consumido mediante
SOAP y no ha habido problema, lo cojo, lo parseo con
simplexml_load_string($respuesta) y destripar el XML... pero en este caso no ocurre igual.
No hay forma pasarlo por
foreach() para sacar las
etiquetas del XML :/ algo que debería ser tan simple como:
No funciona...
He probado de todo:
Código PHP:
Ver originalnew SimpleXMLElement($respuesta); // Prueba 1
He verificado si $respuesta es un objeto con
is_object($respuesta)
Código PHP:
Ver originalecho "NO ES XML";
}else{echo "ES XML";}
Y, como esperaba, new
SimpleXMLElement($respuesta) y
simplexml_load_string($respuesta) dan como que son XML, pero no hay forma de recorrerlo como hago mediante SOAP.
A alguno de ustedes se le ocurre alguna solución o al menos saber el motivo de por qué no puedo trabajar la respuesta con foreach como hacía con el mismo webservice pero desde soap?
Gracias de antemano.
Un saludo.