Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] Przetworzenie XML do PHP
Forum PHP.pl > Forum > Przedszkole
Liamric
Hej,

Mam na uczelni zadanie, generalnie jest proste - kalkulator walut. Nic trudnego, niestety dane trzeba pobrać ze strony ECB (https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml). I tutaj zaczynają się schody. Jest to zupełnie nowa technologia dla mnie. Znalazłem w internecie poradniki do SimpleXML, postępuje według nich, ale za nic w świecie nie jestem w stanie dobrać się do tych danych. Znalazłem nawet gotowca dla NBP, pozamieniałem nazwy tagów, a i tak nie chce hulać. Mózg mi już paruje, muszę to oddać do końca dnia, a jestem w kropce. Pomoże ktoś, wytłumaczy? Wiem, że powinienem zawrzeć jakiś kod własny - ale w sumie te skrawki z poradników nawet nie można nazwać własnym kodem...
viking
Robiłeś w jquery coś?
https://prophp.pl/article/9/phpquery_-_szyb...bienstwo_jquery
Liamric
Kombinowałem dziś z SimpleXML. Raczej wolę trzymać się tej technologii, zwłaszcza że jest 'polecana' przez prowadzącego. Mam problem. Próbuję wczytać dane do tablicy. Niestety napotkałem na dziwny problem. Otóż kiedy używam komendy


  1. $currency = $data_xml->Cube->Cube->Cube[0]->attributes();


wszystko jest w porządku (proszę się nie czepiać wyglądu tego czegoś, nie miałem lepszego pomysłu). Ale kiedy podmieniam 0 na $x (pętla for o długości równej ilości walut do wczytania) wywala błąd takiej treści:
Kod
Fatal error: Uncaught Error: Call to a member function attributes() on null in C:\xampp\htdocs\calc\index.php:51 Stack trace: #0 {main} thrown in C:\xampp\htdocs\calc\index.php on line 51


Jakieś rady?


edit: jeszcze lepiej - to działa, jedynie wywala pod tym ten komunikat. Da się coś z tym zrobić?
viking
  1. $xml = simplexml_load_file('rates.xml');
  2. foreach($xml->getDocNamespaces() as $strPrefix => $strNamespace) {
  3. if(strlen($strPrefix)==0) {
  4. $strPrefix="a";
  5. }
  6. $xml->registerXPathNamespace($strPrefix,$strNamespace);
  7. }
  8. $cube = $xml->xpath('a:Cube/a:Cube/a:Cube');
  9.  
  10. foreach ($cube as $v) {
  11. $att = $v->attributes();
  12. echo $att->rate, '-', $att->currency, '<br/>';
  13. }


  1. $xml = simplexml_load_file('rates.xml');
  2. $cube = $xml->Cube->Cube->Cube;
  3.  
  4. foreach ($cube as $v) {
  5. $att = $v->attributes();
  6. echo $att->rate, '-', $att->currency, '<br/>';
  7. }
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.