Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SimpleXML -> problem z parserem XML
Forum PHP.pl > Forum > PHP
mb83
Witam,
Napisałem skrypt, który przetwarza dane XML do HTML (dokładnie kursy walut NBP).
  1. <?php
  2. $kursywalut= simplexml_load_file('http://www.nbp.pl/kursy/xml/a130z140708.xml');
  3. echo "<table>";
  4. foreach ($kursywalut as $kw):
  5. $nazwawaluty=$kw->nazwa_waluty;
  6. $kodwaluty=$kw->kod_waluty;
  7. $kurs=$kw->kurs_sredni;
  8. echo "<tr><td>$kodwaluty</td><td>$nazwawaluty</td><td>$kurs</td></tr>";
  9. endforeach;
  10. echo "</table>";
  11. ?>

Wszystko fajnie, ładnie tworzy tabelkę tylko na samej górze tej tabeli generuje dwa puste wiersze:
https://drive.google.com/file/d/0BymLQSbI2w...dit?usp=sharing

Co może być tego przyczyną?
SmokAnalog
Zauważ, że ten pobrany XML ma dwa tagi nagłówkowe, a właściwe pozycje są w tagu <pozycja>.

Zamień to:
  1. foreach ($kursywalut as $kw):


Na to:
  1. foreach ($kursywalut->pozycja as $kw):
mb83
Dzięki @SmokAnalog! :-)

jeszcze jedna sprawa ...
plik xml z nbp jest w iso-8859-2, strona także a nie ma znaków polskich w nazwach walut.
trzeba coś w php zakodować żeby były?
SmokAnalog
Cytat(mb83 @ 8.07.2014, 21:38:35 ) *
plik xml z nbp jest w iso-8859-2, strona także a nie ma znaków polskich w nazwach walut.
trzeba coś w php zakodować żeby były?

Jesteś pewien, że plik XML jest w ISO-8859-2? Sprawdziłem to i na stronie z UTF-8 znaki wyświetlają się prawidłowo.
mb83
tak jest w źródle xml'a -> view-source:http://www.nbp.pl/kursy/xml/a130z140708.xml
  1. <?xml version="1.0" encoding="ISO-8859-2"?>
SmokAnalog
Rzeczywiście, ale spróbuj po prostu to wrzucić do prawidłowej strony kodowanej w UTF-8. Powinno działać.
mb83
to, że w UTF-8 działa to wiem ...
problem w tym, że ma działać w iso-8859-2 :-)
wszystko jest ogólnie w latin2 i tak musi zostać?
da się to jakoś zmienić?
SmokAnalog
Spróbuj tak:
  1. $nazwawaluty = iconv('UTF-8', 'ISO-8859-2', $kw->nazwa_waluty);
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.