Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML+PHP] Wyciągnięcie danych z XML
przemek_el
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 17.12.2007

Ostrzeżenie: (0%)
-----


Witam.

Mam plik xml z danymi produktów, potrzebuję te produkty przenieść do sklepu który posiada bazę MYSQL, Samo dodanie do bazy to nie problem tylko nie wiem wogole jak z pliku wyciągnąć dane :/
Plik z kilkoma produktami znajduje się pod adresem:
http://www.arcomp.com.pl/plik.xml

Chodzi o wyciągnięcie jedynie danych produktów, z częsci:
<produkt id="AGDBRAGOL0017" nazwa="Golarka Braun 550 Series 5" producent="BRA" grupa="AGD-GOL" gwarancja="F024M" cena_netto="0,00" dostepny="6" dostepny_kra="0" dostepny_kat="0" data="2008-10-30" na_zamowienie="N" oferta_specjalna="N">
tak aby dane były z zmiennych o nazwach pogrubionych, oraz Aby to co jest między znacznikami:<technika></technika> było w zmiennej np. opis...
np znaczniki:
<parametr nazwa="System golenia" opis="Na sucho" jm="" typ="varchar"/>
<parametr nazwa="System tnący" opis="Rotacyjny" jm="" typ="varchar"/>
<parametr nazwa="Możliwość mycia w wodzie" opis="Mozliwośc mycia pod bieżącą wodą" jm="" typ="varchar"/>

aby w tej zmiennej wygladały tak:
<b>System golenia</b> : Na sucho<br>
<b>System tnący</b>: Rotacyjny<br>
<b>Możliwość mycia w wodzie</b>: Mozliwośc mycia pod bieżącą wodą

Prosiłbym o pomoc. Dodam jeszcze ze plik ma ok 30 mb i trzeba go przetworzyć w całości.
Pozdrawiam

Ten post edytował przemek_el 2.11.2008, 13:26:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
przemek_el
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 17.12.2007

Ostrzeżenie: (0%)
-----


Hmm (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) szkoda ze wcześniej nie wiedziałem że potrzeba php5 ;D wiesz hosting mam dobry bo na home.pl i php5 też jest tylko z powodu starej strony która pod
php5 nie działała jak powinna zostało tam przez plik .htaccess zmieniona wersja php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) odpaliłem w php5 i testowy kod działa, a jak załadować zewnętrzny xml?

EDIT:
Juz mi się udało załadowac plik (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i nawet powoli zaczyna mi wyświetlać jakieś dane z mojego pliku xml.
ale jeszcze nie wszystko tak jak powinno (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Mam jeden problem i pytanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Udało mi się wyciągnąc potrzebne dane, ale tylko gdy plik wyglada następująco:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <produkty>
  3. <produkt id="RTVSHATLC0057" nazwa="Telewizor 52&quot; LCD Sharp LC52X20E (Aqous) (Full HD, 3 HDMI)" producent="SHA" grupa="RTV-TLC" gwarancja="F024M" cena_netto="00,00" dostepny="17" dostepny_kra="0" dostepny_kat="0" data="2007-09-27"  na_zamowienie="T"  oferta_specjalna="N"  ostatnia_zmiana="2008-03-26">
  4. <zdjecia>
  5. <zdjecie plik="/Pictures/RTV/TLC/RTVSHATLC0057/4.jpg" domyslne="1" data="2007-09-28" />
  6. </zdjecia>
  7. <technika>
  8. <parametr nazwa="Kod Producenta" opis="LC52X20E" jm="" typ="varchar" />
  9. <parametr nazwa="HD Ready" opis="True" jm="" typ="bit" />
  10. <parametr nazwa="Full HD" opis="True" jm="" typ="bit" />
  11. <parametr nazwa="Procesor dĹşwiÄ™ków" opis="Surround Sound" jm="" typ="varchar" />
  12. <parametr nazwa="Wzmacniacz" opis="2 x 15 W" jm="" typ="varchar" />
  13. <parametr nazwa="Gniazdo HDMI (ilość)" opis="3" jm="szt." typ="int" />
  14. <parametr nazwa="Gniazdo D-Sub 15pin (ilość)" opis="1" jm="szt." typ="int" />
  15. <parametr nazwa="Gniazdo SCART (Eurozłącze) (ilość)" opis="2" jm="szt." typ="int" />
  16. <parametr nazwa="Gniazdo USB (ilość)" opis="1" jm="szt." typ="int" />
  17. <parametr nazwa="Gniazda dodatkowe" opis="CI-Card Slot, RS-232C" jm="" typ="varchar" />
  18. <parametr nazwa="Pilot" opis="True" jm="" typ="bit" />
  19. <parametr nazwa="Telegazeta" opis="True" jm="" typ="bit" />
  20. </technika>
  21. </produkt>
  22. </produkty>

problem pojawia się gdy obejmę to w znaczniki: <katalog><katalog>
Kod strony to:
  1. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
  2. <?php
  3. $xml = simplexml_load_file('ActionXML_Big.xml');
  4.   for( $y = 0; $y <= 0; $y++ )
  5.    {
  6.    echo '<br>';
  7.    foreach($xml->produkt[$y]->attributes() as $a => $b) {
  8.       echo '<b>',$a,':</b>"',$b,"\"";}
  9.    
  10. for( $x = 0; $x <= 50; $x++ )
  11. {
  12.  
  13. $i=0;
  14.        foreach($xml->produkt[$y]->technika->parametr[$x]->attributes() as $a => $b )
  15.        {
  16.  
  17. if ($a=='nazwa')
  18. {
  19. echo '<b>'.$b.':</b>';
  20. }
  21. if ($a=='opis')
  22. {
  23. echo ' '.$b.' ';
  24. }
  25. if ($a=='jm')
  26. {
  27. echo ' '.$b.'<br>';
  28. }
  29. }
  30. }
  31. }  
  32. ?>


Pokazuje się błąd:
Fatal error: Call to a member function attributes() on a non-object in /xml/aaa.php on line 7
Linia 7 to:
foreach($xml->produkt[$y]->attributes() as $a => $b) {

Co moze być tego powodem? I jeszcze pytanie, jak obliczyć ilość znaczników np
<parametr>? takaby pętla wiedziała do jakiego znacznika maksymalnie moze się odwołać?

Ten post edytował przemek_el 1.11.2008, 19:48:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 08:27