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

Re: Parsowanie

Post przez Lenson »

Cos czuje że z miesiąc rozkminy przede mną i godziny kursów .. :/ eh , dla jednego pliku XML tyle roboty :S

Z Samym SQL i PHP raczej problemu nie mam , trochę większy z php , bo jeżeli mam już dane w bazie , to zrobienie jakiegokolwiek zapytania wyszukiwania , jest dziecinnie proste , najgorzej umieścić te cholerne pliki z xml do tej bazy , przeraża mnie to
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Po tych kursach będziesz wiedział jak przenieść te dane. Te kursy dadzą Ci także możliwość tworzenia dużo fajniejszych rzeczy niż tworzyłeś dotychczas, to nie jest stracony czas ;) Zwłaszcza taki jQuery. Przypatrz się na menu logowania na videokurs.pl, było robione może 10 minut, bez jQuery robiłoby się coś takiego z 2-4h.
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Ależ skąd ja nie twierdze że mi się nie przydadzą , wręcz przeciwnie , gdyby środki mi na to wystarczały - i odpowiednia ilość czasu to pochłonął bym wszystkie te kursy ^^ Z tym że chciał bym , aby strona już zaistniała w sieci a cały czas coś mnie powstrzymuje
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Code: Zaznacz cały

<script>
$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "wpisy.xml",
        dataType: "xml",
        success: fParsujXml
    });
});

function fParsujXml(xml) {


    $(xml).find("wpis").each(function () {
        $(".wpisy").append('<div class="wpis"><div class="tytul">'
	   	   + $(this).find("signature").text() + '</div><div class="opis">' 
		      + $(this).find("description").text() + '</div><div class="data">Dnia ' 
		      + $(this).find("data").text() + '</div><div class="link"><a href="' 
		      + $(this).find("link").text() + '" target="_blank">link</a></div></div>');
		
        $(".wpisy").fadeIn(1000);
		
		$(".wpis").mouseover(function(){
			$(this).css('border-color','#A4045A');
		});
		
		$(".wpis").mouseout(function(){
			$(this).css('border-color','#aaa');
		});

    });

}
</script>
Użyłem takiej funkcji , w prawdzie wypisuje mi co nie co (to nie jest jeszcze to czego oczekuje, to jest przykladowy xml) , Tylko teraz pytanie , co zrobic , jak np codziennie dochodzi mi na ftp nowy plik xml, gdzie ja pozniej bede skladowal te wszystkie dane ktore sa w tych xml ? zeby pozniej mi wybieralo ze wszystkich razem xml a nie tylko z jednego ?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Np. możesz wymyślić jakąś regułę zapisywania plików xml, w taki sposób aby też samo pobieranie

Code: Zaznacz cały

function getXMLFile(whichOne)
{
    $.ajax({
        type: "GET",
        url: "wpisy"+whichOne+".xml",
        dataType: "xml",
        success: fParsujXml
    });
}
było zależne od jakiejś zmiennej przysyłanej do tej funkcji javascript. Nie wiem do końca jak są tworzone pliki aktualnie, więc ciężko coś zasugerować.
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

specyfikacji modułu API WWW, niezbędnej do skonfigurowania exportu z programu asariWEB na indywidualną stronę WWW:
http://pliki.asari.pl/specyfikacje/asar ... ww_api.pdf

Specyfikacja exportu z e-Biuro:
http://pliki.asari.pl/specyfikacje/e-Bi ... ortale.pdf
http://pliki.asari.pl/specyfikacje/e-Bi ... ctions.xml
http://pliki.asari.pl/specyfikacje/e-Bi ... zyklad.zip
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Sorki, ale nie mam czasu na czytanie tych wszystkich specyfikacji, jest to niestety zbyt czasochłonne. Podałem Ci pomysł, spróbuj to jakoś zaimplementować ;)
Lenson
Bywalec
Bywalec
Posty: 67
Dołączył(a): piątek, 25 lutego 2011, 01:41

Re: Parsowanie

Post przez Lenson »

Stworzyłem coś takiego

Code: Zaznacz cały

<?php

     $polacz = @mysql_connect('localhost', 'root', '12qwaszx') or die ("Nie moglem sie polaczyc z serwerem");

     mysql_select_db('dziennik') or die ("Nie moglem znalesc bazy danych");

$doc = DOMDocument::load('produkty.xml');
$xpath = new DOMXPath($doc);
$produkty = $xpath->query('produkt');
foreach($produkty as $produkt) {
	$query = 'INSERT INTO uczniowie SET
		`id` = ' . $xpath->query('id/text()', $produkt)->item(0) . '
		`nazwisko` = ' . mysql_real_escape_string($xpath->query('nazwisko/text()', $produkt)->item(0)) . '
		`imie` = ' . mysql_real_escape_string($xpath->query('imie/text()', $produkt)->item(0));
	$sql->query($query);
}

 mysql_close($polacz);
?>
XML wygląda tak :

Code: Zaznacz cały

<?xml version="1.0" encoding="ISO-8859-2"?>
<produkty>
  <produkt>
    <id>1</id>
    <imie>Jan</imie>
    <nazwisko>Nowak</nazwisko>
  </produkt>
  <produkt>
    <id>2</id>
    <imie>Anna</imie>
    <nazwisko>Nowak</nazwisko>
  </produkt>
  <produkt>
    <id>3</id>
    <imie>Piotr</imie>
    <nazwisko>Kowalski</nazwisko>
  </produkt>
</produkty>

I nie wiem dlaczego wyświetla mi taki błąd :/

Code: Zaznacz cały

Strict Standards: Non-static method DOMDocument::load() should not be called statically in C:\xampp\htdocs\xml\produkty.php on line 8

Catchable fatal error: Object of class DOMText could not be converted to string in C:\xampp\htdocs\xml\produkty.php on line 13
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Parsowanie

Post przez Morfidon »

Musisz stworzyć instancję klasy, w które znajduje się metoda:
load()
i dostać się do niej poprzez wskaźnik
Post Reply