Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parsowanie duzych plikow xml
Forum PHP.pl > Forum > XML, AJAX > XML
Sh4dow
Mam problem, mam dosc duzy plik jak na xml bo zajmuje 32MB. Jest teraz ploblem jak go przeprsowac, aby nie zajechac za bardzo servera, a raczej jak najmniej. Jaka metoda, czy ktos ma jakies doswiadczenia z tym ? Dosc powazna sprawa i nie za bardzo mam ja jak ugrysc. Jesli nikt nie ruszal takich plikow to moze czego uzywac do parsowania.
Potestuje wszystko i zdam pozniej relacje, tylko nie mam pomyslow za bardzo bo to czego uzywam zjadlo mi server i musialem killowac proces w ciezkich bolach.

Z gory dzieki za pomoc Rkingsmiley.png
bela
Użyj SAX-a.

To samo zrobili w Cocoonie, wcześniej używali DOM-a jednak okazał się zbyt pamięcioreżny dla dużych plików - zanim można operować, DOM musi wygenerować drzewo i przechowuje je w pamięci - i zastąpili go SAX-em, który to czyta poprostu elementy i mówi gdzie początek, koniec elementu, jakie atrybuty.
jbadyl
Mój problem idealnie wpisuje sie w ten temat,


mam plik XML o wielkości 200 mb zawierający trochę ponad 25000 rekordów, z czego każdy ma jeszcze pod sobą niezłe drzewko zależnych wpisów.
na razie dysponuje hostingiem na home.pl i w jakiś magiczny sposób muszę przenieść jego zawartość do MySQL.

W jaki sposób mogę to zrobić żeby nie zajechać serwera? wydaje mi sie ze nie jest wykonalne na homie za jednym podejściem przeczytanie całego pliku i wykonanie co najmniej 100000 insertów do mysqla.

Moglibyście coś podpowiedzieć ?

wookieb
Uźyj xmlreader-a. Po prostu będzie skakał po odpowiednich fragmentach pliku i odczytywał je. Zużycie pamięci jest minimalne.
jbadyl
próbuje ale nie wiem czemu struktura tego pliku trochę mnie przeraża element zawierający elementy które zawierają inne elementy nazwy niektórych z nich się powtarzają. Czy ktoś z was gdzieś widział jakiś tutorial albo coś w tym stylu jak się zabrać do skomplikowanej struktury xmlreaderem, bo ja trafiam na proste Tutoriale które przetwarzają pliki o prostej strukturze.
wookieb
Daj strukturę xmla. Po prostu przykładowe dane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.