Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uzycie XML
Forum PHP.pl > Inne > Hydepark
marcio
Witam i mam pytanie takie troche dziwne jako ze nigdy nie uzywalem plikow XML a chcialem poszerzyc moja wiedze na temat Webmasteringu chcialbym was sie zapytac do czego uzywacie wlasnie pliki XML.

Z tego co rozumiem maja one za zadanie reprezentowac jakies dane troszeczke jak pliki z powerpointa?

Np mam pliki *.ini do konfiguracji modulow i zastanawiam sie czy nie zastapic ich plikami XML.
dr_bonzo
Cytat
Np mam pliki *.ini do konfiguracji modulow i zastanawiam sie czy nie zastapic ich plikami XML.

A po co chcesz zmieniac format? dotychczasowy ci ine wystarcza? masz za duzo czasu?

Wlasnie mam ten sam problem, i ini za chwile mi przestanie wystarczac - jak dodam nowy feature, to bede musial przejsc na XML - na razie nie ma potrzeby.
marcio
No bo w sumie dane w plikach *.ini reprezentuje jakby w pliku *.txt czyli:
Cytat
module_type:sys;
module_name:m_admin;
name:Panel administracyjny;
header:Administracja;
file_name:m_admin;
file_name_function:f_m_admin;
description:Modul umozliwiajacy modyfikacje strony;
sql_table:empty;
version:0.1b;
date:11/10/2008;
logo:m_o_admin_head.gif;

Wydaje mi sie to malo profesjonalne.

A do czego mozna jeszcze uzyc xml??
AxZx
XML jest już trochę starawy. niebawem JSON stanie się popularny:)
dlatego może nad nim się zastanowisz?
głównie do przechowywania konfiguracji zapisywanych w plikach no i oczywiście przesyłanie danych ajaxem.
zobacz na flickr.com, last.fm, vimeo.com i wszystkie takie większe serwisy, które udostępniają jakieś API.
Speedy
XML może być wykorzystywany do prezentacji zawartości bazy danych dla użytku serwisów zewnętrznych (np. wspomniane API). Poza tym, kanały RSS są generowane w XML. Ogólnie, jest to jeden z wielu sposobów na prezentację i przechowywanie danych (choć nie powinno się tego używać do przechowywania dużej ilości danych, bo będzie to niewydajne).
dr_bonzo
@AxZx: to zes palnął teraz.

XML przestarzaly - mowimy o konfiguracji aplikacji, ktora nie jest wysylana ajaxem do przegladarek

@marcio: jak masz duzo ustawien to mozesz XML uzyc dla czytelnosci - jednak jak tylko tyle co tu pokazales (malo) to zostaw ini (http://en.wikipedia.org/wiki/You_Ain't_Gonna_Need_It )

W moim konfigu podaje ustawienia ktore modul wpisuje do rejestru przy instalacji
Kod
name=value

No ale chyba bede musial dodac parametry do tych ustawien, czego nie da sie w ini wykonac ( [ sekcje ] juz wykorzystuje do czego innego).
marcio
Cytat
XML może być wykorzystywany do prezentacji zawartości bazy danych dla użytku serwisów zewnętrznych (np. wspomniane API)

Hmm mozesz rozwinac twoja odpowiedz bo zabardzo nie rozumiem?

Hmm z tym JSON to wlasnie tak jak mowi @dr_bonzo to raczej sie przydaje przy uzyciu Ajax'a niby jest to szybsze ale skladnia jakas taka nijaka,a w XML z tego co widze to mozna robic jakie sie chce znaczniki tongue.gif

NO ale jednak ten XML jest taki bardziej "profesjonalny" lecz mysle ze bedzie to wolniej dzialalo bo wkoncu trzeba by bylo uzyc regexp zeby wyciagnac dane tongue.gif
mike
Cytat(marcio @ 28.02.2009, 18:12:21 ) *
NO ale jednak ten XML jest taki bardziej "profesjonalny" lecz mysle ze bedzie to wolniej dzialalo bo wkoncu trzeba by bylo uzyc regexp zeby wyciagnac dane tongue.gif
Nie ma bardziej czy mniej profesjonalnych narzędzi. Są narzędzia bardziej czy mniej profesjonalnie dobrane.
Wybierasz takie narzędzie, które w najlepszy sposób spełni Twoje potrzeby i oczekiwania.

Tak. XML jest wolniejszy ponieważ jego parsowanie (nie regexp'y, tylko gotowe parsery) jest wolniejsze.
marcio
Nom ale ogolem jest napewno bardziej profesjonalne niz reprezentacja konfiguracji modulu w postaci txt a pliku *.ini przynajmniej tak mi sie zdaje.

A sorki jesli ktos nie chce uzywac gotowych parserow takich jak SimpleXML czy jakos tak to przeciez proste dokumenty XML moze za pomoca Regexp parsowac czyz nie?
AxZx
Cytat(dr_bonzo @ 28.02.2009, 17:59:12 ) *
@AxZx: to zes palnął teraz.

XML przestarzaly - mowimy o konfiguracji aplikacji, ktora nie jest wysylana ajaxem do przegladarek


napisałem, że jest starawy - chyba nie zaprzeczysz? (9 lat)
konfiguracja też może być zapisana w JSON.
erix
Cytat
XML przestarzaly - mowimy o konfiguracji aplikacji, ktora nie jest wysylana ajaxem do przegladarek

Tu ma trochę racji, jeśli chodzi o składnię, to jest przecież prostszy, a nie wymaga na ogół wynajdywania osobnych parserów typu YAML. I panuje tendencja ku JSON-owi.

A czemu prostszy? Nie trzeba sobie zawracać gitary prologami, zamykaniem tagów, itp, wystarczy tylko pamiętać zasadę klamerek i klucz: wartość, a oddzielanie wartości jest dużo bardziej intuicyjne.
Speedy
Jeśli chodzi o JSON, to zetknąłem się z nim przede wszystkim przy okazji tworzenia aplikacji AJAX-owych. XML może być stosowany do konfiguracji, ale chyba nie ma sensu bawić się takie zbędne bajery (obojętnie czy to XML, czy inny format), skoro można trzymać konfigurację w zwykłych zmiennych, czy tablicach w php. Nic dodatkowo nie parsujemy, a dane konfiguracyjne i tak zapisuje się tylko raz i od święta zmienia. Po co więc dodatkowy zachód?
erix
Ale sęk w tym, że nie każdy zna PHP, a jeśli chodzi o jego składnię, to dużo łatwiej popełnić w nim błąd coś modyfikując. Zwróć uwagę, że w przypadku JSON np. cudzysłowy stosowane są zazwyczaj wtedy, jeśli to konieczne (np. spacja w ciągu).

Cytat
XML może być stosowany do konfiguracji, ale chyba nie ma sensu bawić się takie zbędne bajery (obojętnie czy to XML, czy inny format)

Jeśli dobrze myślę, to JSON jest szybciej parsowany ze względu na prostszą strukturę i brak konieczności sprawdzania np. domknięć tagów, prologów, itp.
marcio
To mowicie zeby zostawic tak jak jest i w ogole nie patrzec w przyszlosci ani na XML ani na JSON??
Speedy
Im więcej potrafisz, tym lepiej dla Ciebie winksmiley.jpg. Jak już ktoś wspomniał, powinieneś wiedzieć, w jakiej sytuacji najodpowiedniejszym rozwiązaniem będzie zastosowanie XML i JSON.
athabus
Jak dla mnie konfiguracja w ini jest ok i chyba wygodniejsza do utrzymania - ja lubię także yaml - trzeba się do niego przekonać, ale jest wygodny w użyciu. Ogólnie jak dla mnie w większości przypadków konfiguracja w xml jest zbędna i trochę zbyt "rozdmuchana".
Oczywiście xml jest bardzo przydatny w innych przypadkach. Przede wszystkim wspomniane wszelkiego rodzaju API, gdzie zachodzi potrzeba wymiany między dwoma odrębnymi systemami - np. poruszana niedawno kwestia porównywarek cen czy np. udostępnianie treści swojego serwisu innym serwisom. Także xml warto opanować i na pewno będzie ta wiedza procentować.
marcio
Cytat
Oczywiście xml jest bardzo przydatny w innych przypadkach. Przede wszystkim wspomniane wszelkiego rodzaju API, gdzie zachodzi potrzeba wymiany między dwoma odrębnymi systemami - np. poruszana niedawno kwestia porównywarek cen czy np. udostępnianie treści swojego serwisu innym serwisom. Także xml warto opanować i na pewno będzie ta wiedza procentować.

HMm nom wlasnie czytajac takie pojecie jak wymiana danymi pomiedzy innymi systemami nie wiem zabardzo o co wam chodzi lub przy rodzajach roznego API, hmm moze mozecie pokazac mi jakies przyklady w sensie kodow zrodlowych?
erix
Cytat
hmm moze mozecie pokazac mi jakies przyklady w sensie kodow zrodlowych?

No np. XML-RPC (Wordpress, inne CMS-y), co jeszcze - z JSON-owego, to np. BlipAPI.
athabus
Przykładowo masz aplikację ogłoszeniową, istnieje prawdopodobieństwo że inne serwisy będą chciały publikować Twoje ogłoszenia. Piszesz API, które pozwala udostępniać te ogłoszenia. Czyli np. zaprzyjaźniony serwis wysyła żądanie a ty odsyłasz mu plik xml z ogłoszeniami.
Idealne zastosowanie dla xml'a bo ta technologia służy właśnie między innymi przesyłaniu danych pomiędzy różnymi systemami.

Inny przykład to porównywarki cen. Sklepy dostarczają co x czasu aktualny spis swoich towarów w pliku xml a porównywarka to wszystko agreguje. Znowu chodzi o to aby każdy sklep mógł uczestniczyć w tego typu operacjach więc potrzeba uniwersalnego sposobu przesyłania danych.
marcio
Cytat
Przykładowo masz aplikację ogłoszeniową, istnieje prawdopodobieństwo że inne serwisy będą chciały publikować Twoje ogłoszenia

Ah juz chyba wiem o co chodzi cos jak pobieranie News'ow ze strony: http://hacking.pl/ i umieszczanie ich na wlasnej stronie, pytam bo moj kolega zrobil cos takiego tylko nie wiem czy opiera sie to wlasnie o pliki XML musze sie zapytac.

Cytat
Czyli np. zaprzyjaźniony serwis wysyła żądanie a ty odsyłasz mu plik xml z ogłoszeniami

No ale to w jaki sposob moj servis ma wiedziec ze ktos rzada odemnie zadanie zeby pobrac News'y np?

Myslalem ze takie rzeczy to raczej wyciaga sie ze stron za pomoca RegeXp
mike
Cytat(marcio @ 1.03.2009, 17:06:34 ) *
No ale to w jaki sposob moj servis ma wiedziec ze ktos rzada odemnie zadanie zeby pobrac News'y np?
A skąd wiesz, że ktoś chce od Ciebie stronę? Wysyła żądanie, prawda.
Ktoś odpala Twoją stronę żądaniem http://twoja.strona?giveMeNewses a Ty mu serwujesz XML'a.
marcio
Ah czyli zadanie dziala na zasadzie otwarcia danego URL'a w przegladarce??

No i jak potem taka strona oddaje takiemu zadaniu plik XML z News'ami?

Sorki ze mam takie pytania ale ciekawi mnie dzialanie takic rzeczy.
athabus
Tu masz np. omówienie zrobienia prostego API dostępowego przy użyciu symfony http://www.symfony-project.org/jobeet/1_2/Propel/en/16. Może cię to jakoś nakieruje co prawda jest to omówienie jak zrobić w symfony, ale idea jest uniwersalna.
marcio
Dzieki jak bede mial troche czasu to poczytam wielkie dzieki tongue.gif ogolnie nastepnym razem pomysle o uzyciu XML biggrin.gif
kwiateusz
acz projektując api czesto dodaje sie kilka mozliwosci smile.gif np gg api ma xml, json, serializowany php ku uciesze przyszłego dewelopera smile.gif
dr_bonzo
Cytat
Myslalem ze takie rzeczy to raczej wyciaga sie ze stron za pomoca RegeXp

Czemu uzywasz regexpow? Bo stronka nie udostepnia (z roznych powodow) API z ktorego bys mog wygodnie skorzystac, bez meczenia sie z regexpami, zmiennym layoutem itp.
Wyobraz sobie ze zamiast pisania 10 regexpow dostajesz metode getNews() i w tablicy dostajesz newsy i ich parametry (tresc, tytul itp).
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.