PHP парсинг кривого xml

Есть такой вывод, через print_r выглядит так:

<response >
<ISSipExtensions><ISSipExtension>
<ISVoiceRegDNID>43</ISVoiceRegDNID>
</ISSipExtension>
</ISSipExtensions>
</response>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Подскажите как просто и быстро достать в данном случае 43

Еще один пример кривого вывода, тут надо доставать 0:

<response xsi:type="ISexecCLIResponse" >
<ISexecCLIResponse>0</ISexecCLIResponse>
<ISexecCLIError></ISexecCLIError>
</response>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Ответы (1 шт):

Автор решения: John Dow

Получилось конечно топорно, буду рад, если кто то покажет как можно это было решить не так прямолинейно

$clean_xml = str_ireplace(['</axl>', '</SOAP-ENV:Body>', '</SOAP-ENV:Envelope>'], '', $response);
$xml = simplexml_load_string($clean_xml);

$ISVoiceRegDNID = $xml->ISSipExtensions->ISSipExtension->ISVoiceRegDNID;

echo $ISVoiceRegDNID;

43

Во втором случае мне мешает <response xsi:type="ISexecCLIResponse">, просто добавил еще один параметр в замену:

$clean_xml = str_ireplace(['</axl>', '</SOAP-ENV:Body>', '</SOAP-ENV:Envelope>', 'xsi:'], '', $response);
→ Ссылка