php DOMdocument lehal
Üdv!
Adot egy adatbázis, amelyet xml formában kell elkészíteni, az elmúlt 1 hónapban tökéletesen működött, most viszont nem sikerült a formázás DOMdocument-el, mert egy üres fájlt ad vissza.
Az xml-ben minden mezőben az értékek CData tag között vannak. Nem tudok rájönni, hogy mi a probléma, próbáltam már mindenféle speckó karaktert szűrni de nem jutottam előrébb.A kimenet itt található:
http://www.robogowebshop.hu/grando2.php
Előre is köszönöm!
Ui: helyesírási hibákért boccs, csak sietek :)
Üdv!
■ Adot egy adatbázis, amelyet xml formában kell elkészíteni, az elmúlt 1 hónapban tökéletesen működött, most viszont nem sikerült a formázás DOMdocument-el, mert egy üres fájlt ad vissza.
Az xml-ben minden mezőben az értékek CData tag között vannak. Nem tudok rájönni, hogy mi a probléma, próbáltam már mindenféle speckó karaktert szűrni de nem jutottam előrébb.
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($nxml->asXML());
$dom->saveXML();
$dom->save('grando.xml');
http://www.robogowebshop.hu/grando2.php
Előre is köszönöm!
Ui: helyesírási hibákért boccs, csak sietek :)
Üdv!
Nekem nem üres. Sőt, nagyon
Nálam sem üres, szerintem
Persze hogy nem üres, mivel
Csak az $nxml->asXML();-t iratom ki, hogy lássátok, min hasal el :)
Lehet, hogy elfogy a memória
Az XML egyébként egy nagyon jó kis formátum, de adatbázisnak használni ennyi adatnál nem épp a legcélszerűbb.
Ez termék szinkronizációhoz
hosszú sorok / kevés memória
<product>
előtt, illetve megnézni, hogy mennyi memória érhető el a PHP számára. Mert egy 16Mb-os XML fájlból építettDOMDocument
valószínűleg megeszik vagy 32Mb memóriát.szerk:
A fenti módosítást eszközölve a fájlra, már működik is a dolog.
Jogos a feltevés, csak
str_replace
Köszönöm, megpróbálom amint
Amit linkeltem kimenetet,
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 39282732 bytes)
Na most nem tudom mit tudok ilyenkor csinálni.
formázzam str_replace-el, hogy berakom a sörtéreseket meg a tab-okat, vagy szedjem darabokra és úgy engedjem rá a DOMdocument-et.
Vagy másik lehetőség, hogy megkérdezem a szolgáltatót hogy növeljék meg a memória használatot, ami vagy plusz költséggel jár, vagy egyáltalán nem fognak belemenni. Mivel a futásidő hosszabítást sem engedik 120 fölé.
A memóriakorlát emelése csak
Ne DOM-mal
Persze, ha az egész adatbázist be akarod olvasni (és pl. tömbbe rakni), akkor szintén számíthatsz memóriagondokra, de amit Poetro is írt (16M ~= 32M), azt kiküszöbölheted ezzel a szakaszonkénti kezeléssel. Nem kell rögtön a fájlt széttördelni.
Szerk: most olvastam újra, megjelenítési feladat nincs (tehát "tömbösíteni" sem akarsz), viszont egyetlen fájl kell -> ez lesz neked a jó megoldás.
Esetleg próbáld meg több
Szerkesztés: most látom, hogy inf3rno már megelőzött.
Ohh én azt csak debug miatt
Hibás
szerk:
Elnézést, nem volt letöltve valamiért a teljes fájl. Viszont, mostmár, hogy le van töltve, rengeteg más hibát ír ki a PHP.
Ha nézted a PHP
Az a baj, hogy a SimpleXML és
Próbáld kisebb