![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam przeglądałem forum odnośnie pomijania węzłów i atrybutów przez XMLreader. Niestety znalazłem coś takiego:
http://forum.php.pl/index.php?showtopic=78...rt=#entry401680 W powyższym wątku brakuje rozwiązania problemu. Działam na plikach małych i mega dużych. Obecnie testuję na małych. Doradzono mi XMLreader do pracy z dużymi ale już widzę problem z pomijaniem węzłów i atrybutów bądź ich dublowaniem. Dam przykład mojego działania: kawałek xml-a Kod <trip date="2009-03-15" period="4" catalog="Z01" template="" id="15146"> <hotel code="SHANDRANJP" destCode="ITA"/> </trip> Kod $xml = new XMLReader(); $xml->open($plik); while ($xml->read()) { $date = $xml->getAttribute('date'); $period = $xml->getAttribute('period'); $catalog = $xml->getAttribute('catalog'); $template = $xml->getAttribute('template'); $id_ = $xml->getAttribute('id'); $hotel_code = $xml->getAttribute('country'); $hotel_descode = $xml->getAttribute('destCode'); } Dodam że całość chcę wrzucić w bazę a żeby nie było pustych informacji zrobiłem coś na zasadzie if(isset($date)) { dalsze polecenie } W pliku mamy trip i hotel, co prawda atrybuty się nie dublują nazwami ale czy napewno odczytuje się je jednakową formułą? Są one w innych znacznikach. Wcześniej korzystałem z SimpleXML - b. proste w obsłudze, jednak nie ma bata przerobić nim kilkuset megowe pliki a mam nawet 1gb... $id_ = $xml->getAttribute('id'); $hotel_code = $xml->getAttribute('country'); |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Temat, który podałeś w linku rozwiązał się sam. Okazało się, że był błąd w PHP i dlatego tak się działo.
Co do Twojego problemu, to sama pętla nie wystarczy. Zerknij na phpedia.pl, gdzie jest opisane jak używa się klasy XMLReader. Wówczas wszystko stanie się jasne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 17:41 |