Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Poszukaj. Nie jesteś wyjątkiem.
Go to the top of the page
+Quote Post
wookieb
post
Post #3





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




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





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

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


XMLReader nie będzie przypadkiem próbował wczytać pliku w całości naraz ? Kiedyś jak miałem podobny problem, z tym że xml był większy prawie 4 razy to skończyło się na napisaniu własnego parsera fopen, fwrite ...., bo każde gotowe w momencie wczytania pliku wypluwało error o za małej ilości pamięci.
Go to the top of the page
+Quote Post
wookieb
post
Post #5





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




Nie
Go to the top of the page
+Quote Post
svider
post
Post #6





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

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


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





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
wookieb
post
Post #8





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




No to pokaż jak używałeś xmlreadera oraz przykładową strukturę xml.
Go to the top of the page
+Quote Post
Nemon
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 4.01.2011

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


Podepnę się pod pytanie - mam backup bazy mysql w pliku xml (skrypt wordpress) i nie mogę go wczytać, bo jest za duży. Da się to jakoś wczytać w częściach jeżeli go podzielę, czy nie bardzo? On ma tylko kilka mega i wydaje mi się, że to problem z ograniczeniami hostingu.


--------------------
Pozdrawiam (IMG:style_emoticons/default/snitch.gif)
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: 22.08.2025 - 12:43