Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: duzy plik xml - jak odczytać?
Forum PHP.pl > Forum > XML, AJAX > XML
svider
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?
everth
Poszukaj. Nie jesteś wyjątkiem.
wookieb
XMLReader
masiakla
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.
wookieb
Nie
svider
Wielkie podziekowania za odpowiedzi 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.
masiakla
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 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.
wookieb
No to pokaż jak używałeś xmlreadera oraz przykładową strukturę xml.
Nemon
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 snitch.gif
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.