![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jestem w trakcie pracy nad większym projektem i mam problem. Jest sobie na dysku program który generuje plik xml ze swoich danych (oferty). Plik ten ma conajmniej kilkaset tysięcy linii (ok 40mb). I odnośnie tego mam kilka pytań. Musze zrobić tak że skrypt odczytuje przez simplexml plik .xml i zapisuje zawartość do odpowiednich tabel w bazie danych a potem odpowiednich pól (czyli pętle i instrukcje warunkowe aby wszystko zapisac w odpowiednie miejsca). No i nie wiem jak rozwiązać problem szybkości, bo wiadomo z taką ilością informacji trwa to bardzo długo (kilka minut do kilkudziesięciu). Elementy pliku xml mają kilka postaci (dla odpowiednich ofert inne pola): Przykład:
Chciałem się dowiedzieć jak można maksymalnie zoptymalizować taki proces (może coś innego niż simplexml), wasze różne pomysły i sugestie. (nie mogę nic zmieniać z plikiem xml) i dlaczego wywala błędy kiedy simplexml nadrafi na znak "&" czy można to jakoś usunąć czy tylko zamienić na "&". Aha i nie mam dostępu do serwera, czyli nic nie moge doinstalować, ewentualnie klasy itp. Pozdro Ten post edytował Apo 12.05.2006, 15:03:06 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedzią na Twoje pytanie jest SAX. Wymaga on od programisty trochę więcej niż SimpleXML czy też DOM, ale jest najlepszy przy odczycie tak dużych plików. Nie wczytuje on całego pliku do pamięci.
Przy takiej strukturze dokumentu SAX na pewno sobie poradzi (wersja parsera XML, która jest w php dziwnie obsługuje przestrzenie nazw). PS. masz kod w złym tagu, chyba jest od tego XML? -------------------- Łukasz Dywicki
Independent Java and open source software consultant. Blog - Java, OSGi, integracja oprogramowania.. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Macie może jakiś ciekawe linki o SAX ? Na forum za dużo informacji o tym nie ma. Przejżałem manual i znalazłem o tym rodział w książce ale tylko 2 strony
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:38 |