Parsowanie

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Parsowanie

Post przez Lenson »

W jaki sposób mogę zparsować plik XML do bazy danych ? mam plik z bardzo dużą ilością reguł i nie do końca wiem jak się do tego zabrać ^^ ? Jest to w jakimś kursie zawarte ?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

W którejś z lekcji jQuery albo AJAX (już nie pamiętam, której) pokazywałem jak z bazy danych pobrać dane i stworzyć z nich plik XML. To co chcesz uzyskać robisz tak samo, tylko w drugą stronę, najpierw pobierasz plik XML, później go analizujesz funkcjami, które wykonują zapytania MySql.

Możesz też spróbować pobawić się tym: http://dev.mysql.com/tech-resources/art ... 1-6.0.html
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

A jeżeli w pliku xml mam zdefiniowanych 200 pol , to co w bazie danych rowniez mam tworzyc 200 kolumn ?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

No jeżeli masz aż tak dużo pól, a nie rekordów to tak, musisz stworzyć tabelkę z 200 kolumnami.

Możesz też wczytać cały plik XML: http://www.php-mysql-tutorial.com/wikis ... abase.aspx
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Hmm to może ja trochę bardziej wyjaśnię o co mi tak naprawdę chodzi , bo cały czas mnie to pytanie nurtuje , a ciężko jest mi na nie znaleźć odpowiedz , dlatego gdyby mi pan chodź troszkę pomógł był bym bardzo wdzięczny:

Plik XML wygląda mniej więcej w takiej postaci:

Code: Zaznacz cały

<offer>
<signature>PMR04015</signature>
<parameters>
<p1>PMR04015</p1>
<p2>POMERANIA - NIERUCHOMOŚCI MARZANNA IGNATOWICZ</p2>
<p3>2011-03-02 00:00:00.0000</p3>
<p4>379.5000</p4>
<p5>2011-03-02 00:00:00.0000</p5>
<p8>200.0000</p8>
<p9>1650.0000</p9>
<p10>220000.0000</p10>
<p13>3366.4881</p13>
<p17>AKT NOTARIALNY</p17>
<p23>Z OKNEM</p23>
<p26>AKTUALNA</p26>
<p28>6600.0000</p28>
<p29>4400.0000</p29>
<p36>MIESZKANIE</p36>
<p37>BRAK UCIĄŻLIWOŚCI</p37>
<p38></p38>
<p42></p42>
<p43>SPRZEDAŻ</p43>
<p45>ZACHODNIOPOMORSKIE</p45>
<p46>SZCZECIN</p46>
<p47>SZCZECIN</p47>
<p48>SZCZECIN</p48>
<p49>ŚRÓDMIEŚCIE-CENTRUM</p49>
<p50>104587.0000</p50>
<p51>0.0000</p51>
<p52>WYDZIAŁ PRAWA, NETTO</p52>
<p59></p59>
<p62>3.0000</p62>
<p63>3.0000</p63>
<p64></p64>
<p65></p65>
<p66></p66>
<p69></p69>
<p70>KAMIENICA</p70>
<p71>PRZEDWOJENNE</p71>
<p72>PODSTAWOWY</p72>
<p73>MUROWANA</p73>
<p74>CEGŁA</p74>
<p78>DREWNIANE NOWY TYP</p78>
<p79>3.0000</p79>
<p82></p82>
<p83>1.0000</p83>
<p84>1.0000</p84>
<p86>220V., INTERNETOWA, TELEWIZJA KABLOWA</p86>
<p87>GAZOWY PRZEPŁYWOWY</p87>
<p89>C.O. ELEKTRYCZNE</p89>
<p93>55309.7345</p93>
<p98>1899-12-30 00:00:00.0000</p98>
<p99>0.0000</p99>
<p100>0.0000</p100>
<p106>0.0000</p106>
<p120>BALKON</p120>
<p121>WŁASNOŚĆ HIPOTECZNA</p121>
<p126>OTWARTA</p126>
<p127>WYKOŃCZONY</p127>
<p128>65.3500</p128>
<p133>1-POZIOMOWE</p133>
<p135>LEWOBRZEŻE</p135>
<p137>250.0000</p137>
<p141>PLN</p141>
<p147>0.0000</p147>
<p148>0.0000</p148>
<p149>Z KLATKI SCHODOWEJ</p149>
<p162>14665.0000</p162>
<p165>1452.0000</p165>
<p170>693898878</p170>
<p171>ALEKSANDRA.OSIECZKO@POMERANIA.SZCZECIN.PL</p171>
<p172>0</p172>
<p173>ALEKSANDRA OSIECZKO</p173>
<p200>2011-03-02 00:00:00.0000</p200>
<p300>MARIANA LANGIEWICZA</p300>
<p305>ALEKSANDRA OSIECZKO</p305>
<p307>NIE</p307>
<p308>3.0000</p308>
<p309>3.0000</p309>
<p417>TAK</p417>
</parameters>
<pictures>
<picture>
<unique>PMR00000000000532945.jpg</unique>
<status>1</status>
<weight>1</weight>
<description>...</description>
</picture>
<picture>
<unique>PMR00000000000532944.jpg</unique>
<status>0</status>
<weight>2</weight>
<description>...</description>
</picture>
<picture>
<unique>PMR00000000000532946.jpg</unique>
<status>0</status>
<weight>3</weight>
<description>...</description>
</picture>
<picture>
<unique>PMR00000000000532948.jpg</unique>
<status>0</status>
<weight>4</weight>
<description>...</description>
</picture>
<picture>
<unique>PMR00000000000532947.jpg</unique>
<status>0</status>
<weight>5</weight>
<description>...</description>
</picture>
</pictures>
<description>4 pokojowe mieszkanie w  centrum Szczecina, okolica dobrze skomunikowana. Mieszkanie przestronne i ustawne. Największy pokój z balkonem od strony południowej. Kuchnia widna z oknem. Łazienka i WC osobno. Na podłogach panele, na ścianach tapety. Do mieszkania przynależy piwnica ok 8m2. W kamienicy była remontowana klatka schodowa, oraz dach, w planach jest remont elewacji. Polecam~!

</description>
</offer>
Ma on tam podane różnego rodzaju parametry , jak widać na załączonym obrazku . Problem właśnie mój polega na tym, że program exportuje mi plik w takiej postaci na server FTP. I teraz potrzebuje plik w takiej postaci prze konwertować i umieścić do bazy danych w odpowiednich rubrykach, tych parametrów jak widać jest bardzo dużo , i w każdym momencie mogą zostać dodane nowe w programie. Mój problem polega na tym , że nie do konca wiem w jaki sposób się do tego zabrać , kolejnym problemem jest to , że powyższy kod przedstawia tylko jedną oferte , w danym pliku XML może byc tych ofert nawet 50 , poukładanych w chronologicznym porządku , od góry do dołu , (po prostu tak jak bym teraz skopiował ten kod i umieścił niżej) , zdjęcia znajdują się w folderze pictures, zaś następnym (wydawało by się problemem) jest to że jednego dnia mogę dodać 50 ofert i na serwerze FTP zapisze mi się to w odpowiednim folderze , czyli na każdy dzień jak i godzinę robione są nowe foldery. Hmm mogę powiedzieć nawet , że po każdym exporcie plików tworzony jest nowy folder , więc kolejna sprawa jest wejście do odpowiedniego folderu na ftp i odczytanie danego pliku
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

I teraz potrzebuje plik w takiej postaci prze konwertować i umieścić do bazy danych w odpowiednich rubrykach(...)
Wyjaśnij po co jeśli możesz, tak żeby można było coś zasugerować.
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Musze umieścić to w bazie danych, żebym potem mógł robić wyszukiwanie ofert po nieruchomosciach typach itp sprawach
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Możesz to zrobić tak jak napisałem wcześniej, lub skorzystać z jQuery i przeszukać plik XML zwrócony przez PHP (zapytanie AJAX) przy pomocy prostego $.load lub $.ajax.
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Która według pana opcja bardziej przyzwoita ? , Ta opcja która napisał pan wczesniej , cos nie do konca mi działa. A jeśli chodzi o ajaxa to go kompletnie nie znam , czy w kursie o ajaxie sa zawarte lekcje do przeszukiwania plików xml ? i czy po uzyciu ajaxa wszystkie pliki które są zostaną umieszczone w bazie danych ? ps w jaki sposob obejsc problem z fodlerami ?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Druga opcja moim zdaniem jest lepsza.

Po kursie AJAX możesz mieć problemy ze zrobieniem tego, potrzebujesz także wiedzy z jQuery. Bez jQuery masz przed sobą niestety duuuuużo roboty (więcej pisania) ;)

Jeśli chodzi o operacje na XML:
Lekcja 10 - suggestBox - z wykorzystaniem PHP i MySql - 17 min i 0 s
Dowiadujemy się co zrobić, jeżeli nasza baza danych przechowywana jest nie w pliku xml, ale w MySql. Uczymy się przetwarzać dane z bazy MySql tak, aby działały w naszym suggestBoxie. Pokazujemy co trzeba zrobić, aby wyświetały się poprawnie polskie znaki w bazie danych MySql jak i po ich pobraniu w dynamicznie stworzonym pliku XML przy pomocy PHP.
myślę, że wiedza z wielu lekcji z kursu AJAX i jQuery Ci pomoże w rozwiązaniu Twojego problemu. W kursach jest sporo lekcji poświęconym tym zagadnieniom.
Post Reply