- simplexml_load_string: documentation ( source)
- print_r: documentation ( source)
- trim: documentation ( source)
- html_entity_decode: documentation ( source)
- preg_replace: documentation ( source)
- strtolower: documentation ( source)
<?php
$dati2 = "<PDresponse>
<isStatusOK>true</isStatusOK>
<status>0</status>
<payLoad>
</payLoad>
</PDresponse>";
$response = html_entity_decode($dati2);
$xmlString = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response);
/* adesso posso usare simplexml */
$xmlString = trim(preg_replace('/<\?xml.*\?>/', '', $xmlString, 1));
$xml = simplexml_load_string($xmlString,'SimpleXMLElement', LIBXML_NOCDATA);
//print_r($xml);
/* Verifico che il messaggio non sia ancora sporco, si sa mai*/
if($xml->soapenvBody->sendMessageResponse->sendMessageReturn != NULL)
$xml = simplexml_load_string($xml->soapenvBody->sendMessageResponse->sendMessageReturn);
//print_r($xml);
if(strtolower($xml->isStatusOK) == "true")
$hl7mess = $xml->payLoad->{'ADR_A19'};
else
echo "errore";
print_r($hl7mess);