Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][AJAX]
Forum PHP.pl > Forum > XML, AJAX
Skie
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).
wookieb
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.
Skie
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.
wookieb
Czemu nie. Dane powinny wtedy mniej zająć. Spróbuj. Nie zaszkodzi.
paziek
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ć smile.gif
Skie
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 "/"
paziek
Musisz wygoglować sobie na temat CDATA ;-)
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-2025 Invision Power Services, Inc.