Salve a tutti sto provando ad interrogare un file xml contenente diversi namespaces attraverso le classi DOMDocument e DOMXPath ma non riesco a recuperara dati
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ElencoAlunniResponse xmlns="http://www.miosito.it/">
<ElencoAlunniResult><![CDATA[<esito>
<alunno nome="Mario" cognome="Rossi" telefono="0312362-420576" />
<alunno nome="Mario1" cognome="Rossi1" telefono="10312362-420576" />
<alunno nome="Mario2" cognome="Rossi2" telefono="20312362-420576" />
<alunno nome="Mario3" cognome="Rossi3" telefono="30312362-420576" />
</esito>]]></ElencoAlunniResult>
</ElencoAlunniResponse>
</soap:Body>
</soap:Envelope>
Il codice php è il seguente:
$doc = new DOMDocument();
$doc->load('esempio.xml');
$xp = new DOMXPath($doc);
$xp->registerNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
$query = '//soap:Envelope/soap:Body/ElencoAlunniResponse/ElencoAlunniResult/esito/alunno;
$entries = $xp->query($query);
foreach ($entries as $searchNode)
{
$user = $searchNode->getAttribute('nome');
echo "nome: " . $user. "
";
}
Grazie.