Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> duzy plik xml - jak odczytać?
svider
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 23.03.2010

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


Witam.

Realizuję obecnie skrypt pobierania ofert pracy z pewnego dużego portalu za pomocą kanału atom. Problem w tym ze plik z ofertami udostepniony przez administratora jest spakowany do formatu bz2 i po rozpakowaniu zajmuje okolo 56 MB. podczas próby czytania tego pliku za pomocą klasy DOMDocument serwer wywala bład 500. Na localhoscie dlugo mieli (około 5 min) ale przeczyta cały plik. Tutaj pytanie: czy znacie może jakies metody na to by otwierać tak duże pliki?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
masiakla
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 17
Dołączył: 4.09.2010
Skąd: far far away

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


Cytat(wookieb @ 9.09.2010, 22:22:18 ) *
Nie

To nawet nie wiedziałem, będę pamiętał na przyszłość, ogólnie ja robiłem swoje dziadostwo jak jeszcze XmlReader nie był w standardzie, to była jakaś z pierwszych stabilnych wersji php 5. XmlReadera znam z C# głównie, gdzie do pary z writerem, bardzo lubię używać, widzę, że klasa php'owa jest podobna.

Cytat(svider @ 10.09.2010, 01:46:01 ) *
Wielkie podziekowania za odpowiedzi (IMG:style_emoticons/default/smile.gif) w moim przypadku xmlReader się nie sprawdzał (nie wiem dlaczego ale czytał tylko początek pliku). Najtrafniejszą metodą okazało się pocięcie dużego pliku xml na szereg mniejszych za pomocą funkcji fopen, fgets, fwrite i potem wydobywanie danych z pociętych plików przy pomocy klasy DOMDocument.

Nie do końca mi o to chodziło, zrobiłem błąd, że tam wcisnąłem fwrite w przykładzie. Nie dzieliłem pliku na mniejsze, bo to jest mało optymalne, czytałem go linia po linii pamiętając ścieżkę xpath i w zależności od zawartości wykonywałem odpowiednie działania, sama klasa po kilku zmianach nadawałaby się nawet do uniwersalnego zastosowania.
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 23:08