Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie duzych plikow xml
Sh4dow
post
Post #1





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
bela
post
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
jbadyl
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.06.2010

Ostrzeżenie: (0%)
-----


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ć ?

Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Uźyj xmlreader-a. Po prostu będzie skakał po odpowiednich fragmentach pliku i odczytywał je. Zużycie pamięci jest minimalne.
Go to the top of the page
+Quote Post
jbadyl
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.06.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Daj strukturę xmla. Po prostu przykładowe dane.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:23