![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jaki jest waszym zdaniem najlepszy i najszybszy sposób parsowania plików XML? Właśnie wykonałem skrypt działający na takiej zasadzie: PHP tworzy nowy plik XML -> dane z XMLa sa czytane za pomoca AJAXa -> AJAX wykonuje operacje na pobranych danych -> PHP zapisuje przetworzony przez AJAX plik XML Niestety trwa to wszystko zdecydowanie za długo. Podczas tej operacji są pobierane 2 pliki XML (jeden o wielkości 1 KB, drugi 15KB), oraz jeden z nich (ten z zawartoscia 1 KB) jest ponownie zapisywany. Całość procesu trwa od 0.3 do 1.0 sek. Korzystałem z SimpleXML (PHP) i responseXML (AJAX). |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
W phpie wrzuć dane z tablicy do formatu JSON (json_encode)
W js wrzucasz to do obiektu za pomocą eval. Więcej na json.org. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Hm... Przeczytałem kilka artykułów o tym JSON i wygląda ciekawie. Mam jednakże pewne wątpliwości. Czytałem, iż jest lepszy od XML w przypadku nie skomplikowanych dokumentów. Czy "nieskomplikowany" znaczy "duży"? Gdyż w swoim przykładzie miałem 2 pliki - 1 KB i 15KB ale to są bardzo ograniczone wersje stworzone tylko do testów, w rzeczywistości te pliki mogą być "większe" - czy mimo to lepiej użyć JSON?
Ponadto mam pytanie. Na jednej stronce widziałem, że pobrany plik XML ma taką strukturę: Kod <users> <![CDATA[p[4963] = [1, 7, 'Skie', 1];]]> </users> Z taką strukturą się jeszcze nie spotkałem - to jest XML? JSON łączony z XML? Czy jeszcze coś innego? Pytam bo pliki XML stworzone przez tą stronę są całkiem skomplikowane i duże, ale mimo to Request na nich wykonuje się w mniej niż 0.2 sek. Ten post edytował Skie 24.08.2008, 12:40:33 |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Czemu nie. Dane powinny wtedy mniej zająć. Spróbuj. Nie zaszkodzi.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Prędkość wykonywania requesta na tamtej stronce, a na twojej nie zależy jedynie od zastosowanej metody zapisu danych (XML/JSON). Może to być sprzęt (szybki dysk), może to być zastosowany serwer WWW, jego konfiguracja, może to być sposób podawania tego pliku XML.. jest tego sporo.
Kod <users> <![CDATA[p[4963] = [1, 7, 'Skie', 1];]]> </users> To nie jest JSON. Jedynie XML z tagiem, którego zawartość to dwuwymiarowa (zdaje się) tablica. Moze to być w JavaScipt, może to być jakimś innym języku. Ogólnie, to uważam, że XML + XPath powala JSONona na kolana. Czy to w JS, czy to w jakimkolwiek innym języku. Jedyna zaleta JSONa to możliwość pobierania danych z innych domen, niż ta na której uruchamia się skrypt. Ale i to się niedługo zmieni. Zaznaczam, że to jest moja opinia, nie musisz się z nią zgadzać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Hmm... lecz gdyby to był XML to następna ilośc użytkowników wyglądałaby chyba tak? (danych liczbowych nie zmieniam, bo nie ma sensu.
Kod <users> <![CDATA[p[4963] = [1, 7, 'Skie', 1];]]> <![CDATA[p[4963] = [1, 7, 'innyuser', 1];]]> </users> A jest tak: Kod <users> <![CDATA[p[4963] = [1, 7, 'Skie', 1]; p[4963] = [1, 7, 'innyuser', 1]; ]]> </users> No i poza tym nigdzie tutaj nie widzę zamknięcia tagu "/" Ten post edytował Skie 24.08.2008, 15:47:55 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 25 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Musisz wygoglować sobie na temat CDATA ;-)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:30 |