Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML]XMLreader i pomijanie, dublowanie
Larges
post
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');
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
batman
post
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)
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: 16.09.2025 - 17:41