Keresés

Új hozzászólás Aktív témák

  • Tapsi

    addikt

    válasz Sk8erPeter #12008 üzenetére

    Átírtam, de nyilván nem ez volt a gond. Kösz, hogy szóltál. :D

    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 ]

Új hozzászólás Aktív témák