Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit SimpleXML

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit SimpleXML

    Das folgende Script funktioniert nicht so, wie es soll:

    <?php $xmlFile = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'; $xml = simplexml_load_file($xmlFile); print_r($xml); $time = $xml->Cube->time; echo $time; // foreach ($xml->Cube as $currency, $rate) { // echo 'Currency: ' . $currency . $rate . '<br>'; //}
    Die Datei von der Europäischen Zentralbank mit den täglichen Referenzkursen der wichtigsten Währungen wird zwar von SimpleXML geladen, aber wie extrahiert man daraus das Datum und die Kurse?

    Danke...Willi

  • #2
    Bitte poste mehrzelilg und in Code tags.
    forgeschriotten eher nicht ...
    https://php-de.github.io/jumpto/leitfaden/

    Kommentar


    • #3
      Zitat von Willi001 Beitrag anzeigen
      Die Datei von der Europäischen Zentralbank mit den täglichen Referenzkursen der wichtigsten Währungen wird zwar von SimpleXML geladen, aber wie extrahiert man daraus das Datum und die Kurse?
      Indem man sich $xml mal per var_dump() ausgeben lässt und sich dann noch im Handbuch die grundlegende Verwendung von SimpleXML anschaut - dabei wird man feststellen dass man auf Attribute anders zugreift als von dir versucht.

      Kommentar


      • #4
        Fuer einen funktionsfähigen Quellcode lobe ich hiermit 6 Flaschen Frizzantino (süsser italienischer Perlwein) aus.

        Kommentar


        • #5
          Ich hab den Code mit Whitespace von PHPStorm in das Forum kopiert. Beim Abspeichern ging der Whitespace verloren.

          Kommentar


          • #6

            <?php

            $xmlFile = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
            xml = simplexml_load_file($xmlFile);
            print_r($xml);

            $time = $xml->Cube->time;
            echo $time;

            // foreach ($xml->Cube as $currency, $rate) {
            // echo 'Currency: ' . $currency . $rate . '<br>';
            //}

            Kommentar


            • #7
              Du findest Beispiele auf der Seite
              https://www.php.net/manual/de/simple...attributes.php

              Das sieht bei Dir aber noch ziemlich hoffnungslos aus, daher zeige ich doch mal, wie es funktioniert:

              PHP-Code:
              $xmlFile 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
              $xml simplexml_load_file($xmlFile);
              echo 
              "<pre>";
              //print_r($xml);
              $time = (string) $xml->Cube->Cube->attributes()->time;
              echo  
              "<br>" 'Zeit: ' $time "<br>";

              foreach (
              $xml->Cube->Cube->Cube as $sgCube) {
                  
              $currency = (string) $sgCube->attributes()->currency;
                  
              $rate = (string) $sgCube->attributes()->rate;
                  echo 
              'Currency: ' $currency ' ' $rate '<br>';
              }
              echo 
              "</pre>"
              Wie du siehst, gibt es hier mehrere Cube-Elemente, die ineinander verschachtelt sind. Das ist ein Teil des Problems gewesen. Das zweite ist, dass du nicht weißt, wie man auf die Attribute zugreift.

              Kommentar


              • #8
                Vielen Dank p-bieling. Bitte schick mir Deine Postanschrift per eMail an willi@rauffer.org. Dann bekommst Du die 6 Flaschen Frizzantino Perlwein.

                Kommentar


                • #9
                  Huch, hatte ich gar nicht gesehen mit dem Wein. - Dann spende die doch bitte für einen guten Zweck, z.B für eine Weihnachtsfeier im Altenheim. Ich kann das gar nicht verbuchen.

                  Kommentar


                  • #10
                    ok. Dann spende ich den entsprechenden Geldbetrag an UNICEF.

                    Kommentar


                    • #11
                      Ist an UNICEF gespendet!

                      Kommentar


                      • #12
                        Ich hab das Script für einen Einsatz bei UNDollar.org weiterentwickelt:

                        Kommentar


                        • #13
                          PHP-Code:

                          <?php
                          $xmlFile 
                          'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
                          $xml simplexml_load_file($xmlFile);
                          //print_r($xml);

                          echo "<pre>";

                          $currencyUNDUSD 'UND';
                          $rateUNDUSD '12.0700';
                          echo 
                          'Currency: ' $currencyUNDUSD ' ' '<br>';

                          $currencyEURUSD = (string) $xml->Cube->Cube->Cube->attributes()->currency;
                          rateEURUSD = (string) $xml->Cube->Cube->Cube->attributes()->rate;  

                          echo 
                          '1 UN$ = ' $rateUNDUSD ' US$' ' (Fixing)' '<br>';
                          $rateUNDEUR $rateUNDUSD/$rateEURUSD;
                          echo 
                          '1 UN$ = ' $rateUNDEUR ' EUR' ' (USD-Kurs von der EZB)';  

                          $time = (string) $xml->Cube->Cube->attributes()->time; echo  "<br>" 'Zeit: ' $time "<br>";  

                          foreach (
                          $xml->Cube->Cube->Cube as $sgCube) {
                              
                          $currency = (string) $sgCube->attributes()->currency;    
                              
                          $rate = (string) $sgCube->attributes()->rate;    
                              echo 
                          'Currency: ' $currency ' ' $rate*$rateUNDEUR '<br>';
                          }
                          echo 
                          "</pre>";

                          Kommentar

                          Lädt...
                          X