Átírtam, de nyilván nem ez volt a gond. Kösz, hogy szóltál.
Ezt a classt használtam végül: [link]
A kód jelenleg így néz ki:
$client = new SoapClient('http://....asmx?WSDL',array("trace" => 1,"exceptions" => 0,'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
$result=$client->GetCikkekKeszleten(array('web_update'=>'2012-11-20-11:00'));
$t1 = new XMLSerializer;
$re = $t1->generateValidXmlFromObj($result->GetCikkekKeszletenResult,"","");
$re = htmlspecialchars_decode($re);
$re = str_replace(array("</valasz>",'<valasz xmlns="" verzio="1.0">'),array("",""),$re);
Ez már egy normális XML-fát ad vissza. Egyelőre fájlba írom, de lehet, hogy kihagyom ezt a köztes lépést, és rögtön feldolgozom. Továbbra is a nagy adatmennyiség a probléma.
Az XML feldolgozó:
$z = new XMLReader;
$z->open('tmp.xml');
$doc = new DOMDocument;
while ($z->read() && $z->name !== 'cikk');
while ($z->name === 'cikk'){
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
$ki .= '<tr><td>'.$node->cikkid.'</td><td>'.$node->cikkszam.'</td></tr>';
$z->next('cikk');
}
?>
Az XML pedig így néz ki:
<?xml version="1.0" encoding="UTF-8" ?>
<any>
<cikkek>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
<cikk><cikkid>93038</cikkid><cikkszam>SKNB52</cikkszam></cikk>
</cikkek>
</any>
[ Szerkesztve ]