Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML][PHP] Pobranie odpowiednich danych z pliku XML
kstawinski
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.05.2017

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


Witam, poniższy kod generuje mi 6 wyników z odpowiednio: nazwą serwisu, tytułem posta, opisem posta i odnośnikiem do niego. To jest okej i działa jak najbardziej w porządku, ale przed tym wyświetla mi się nazwa serwisu tyle razy, ile jest znaczników <item> w pliku xml. W czym może tkwić problem i jak go rozwiązać?

  1. <?php
  2. $xml = simplexml_load_file("__odnosnik do pliku xml__");
  3.  
  4. foreach ($xml as $channel)
  5. {
  6. foreach($channel as $item)
  7. {
  8. echo $channel->title;
  9. echo $item->link;
  10. echo $item->title;
  11. echo $item->description;
  12. ';
  13. }
  14. }
  15.  
  16. ?>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bostaf
post
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Rzuciłem sobie to wszystko na
  1. var_dump('<pre>', $xml);

i zobaczyłem, że pierwsze 6 elementów to nie są wpisy bloga tylko jego parametry (title, link, ...). Trzeba je jakoś pominąć i załatwione. Tak na szybko z property_exists:
  1. $xml = simplexml_load_file("http://blog.piotrnalepa.pl/feed/");
  2.  
  3. foreach ($xml as $channel)
  4. {
  5. echo $channel->title;
  6.  
  7. foreach($channel as $item)
  8. {
  9. if (property_exists($item, 'link')) {
  10. echo $item->link;
  11. echo $item->title;
  12. echo $item->description;
  13. }
  14. }
  15. }

Ale na pewno da się inaczej i może bardziej skutecznie/ergonomiczne.
Go to the top of the page
+Quote Post
kstawinski
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.05.2017

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


Cytat(bostaf @ 1.06.2017, 21:45:26 ) *
Rzuciłem sobie to wszystko na
  1. var_dump('<pre>', $xml);

i zobaczyłem, że pierwsze 6 elementów to nie są wpisy bloga tylko jego parametry (title, link, ...). Trzeba je jakoś pominąć i załatwione. Tak na szybko z property_exists:
  1. $xml = simplexml_load_file("http://blog.piotrnalepa.pl/feed/");
  2.  
  3. foreach ($xml as $channel)
  4. {
  5. echo $channel->title;
  6.  
  7. foreach($channel as $item)
  8. {
  9. if (property_exists($item, 'link')) {
  10. echo $item->link;
  11. echo $item->title;
  12. echo $item->description;
  13. }
  14. }
  15. }

Ale na pewno da się inaczej i może bardziej skutecznie/ergonomiczne.


Wszystko działa, dzięki bardzo (IMG:style_emoticons/default/wink.gif)
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: 10.10.2025 - 16:17