Dal seguente XML che ricevo da una chiamata SOAP devo recuperare una serie di informazioni,
eseguo un iniziale ciclo foreach per scorrere il tag <StatoPSWS> e funziona correttamente, contestualmente al suo interno dovrei creare un ulteriore ciclo foreach per scorrere il tag <areePS> e recuperare i valori <areaCalda> ma qui la situazione non funziona.
XML:
codice:<soap:....> <listaStatoPS xmlns="http://myurl.nec"> <StatoPSWS> <anagraficaPS>...</anagraficaPS> <esitoRichiesta>...</esitoRichiesta> <statoPS> <areePS> <AreaPS><areaCalda>true</areaCalda></AreaPS> <AreaPS><areaCalda>false</areaCalda></AreaPS> <AreaPS><areaCalda>false</areaCalda></AreaPS> <AreaPS><areaCalda>true</areaCalda></AreaPS> <AreaPS><areaCalda>true</areaCalda></AreaPS> </areePS> </statoPS> </StatoPSWS> <StatoPSWS> <anagraficaPS>...</anagraficaPS> <esitoRichiesta>...</esitoRichiesta> <statoPS> <areePS> <AreaPS><areaCalda>false</areaCalda></AreaPS> <AreaPS><areaCalda>false</areaCalda></AreaPS> <AreaPS><areaCalda>false</areaCalda></AreaPS> <AreaPS><areaCalda>true</areaCalda></AreaPS> <AreaPS><areaCalda>false</areaCalda></AreaPS> </areePS> </statoPS> </StatoPSWS> </listaStatoPS> <uuid xmlns="http://...">...</uuid> </ns1:out> </ns1:getStatoPSResponse> </soap:Body> </soap:Envelope>
il primo ciclo foreach funziona ...
codice:$sxe = new SimpleXMLElement($xml); $sxe->registerXPathNamespace('listaStatoPS', 'http://myurl.nec'); foreach ($sxe->xpath('//listaStatoPS:StatoPSWS') as $item) { $id_risorsa = (string) $item->anagraficaPS->idRisorsa; $data->registerXPathNamespace('listaStatoPS', 'http://myurl.nec'); $el2 = $sxe->xpath('//listaStatoPS/StatoPSWS/statoPS/areePS/AreaPS'); foreach ($el2 as $val) { $valore = (string) $val->areaCalda; } }

Rispondi quotando