Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][PHP] Przetworzenie XML do PHP
Liamric
post 8.10.2017, 11:23:31
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.10.2017

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


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...
Go to the top of the page
+Quote Post
viking
post 8.10.2017, 12:03:21
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Robiłeś w jquery coś?
https://prophp.pl/article/9/phpquery_-_szyb...bienstwo_jquery


--------------------
Go to the top of the page
+Quote Post
Liamric
post 8.10.2017, 19:46:43
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.10.2017

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


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ć?

Ten post edytował Liamric 8.10.2017, 20:01:29
Go to the top of the page
+Quote Post
viking
post 9.10.2017, 06:35:02
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  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. }


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 06:48