Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Parser PHP per XML tradedoulber
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • Pietro Mantovani
      Pietro Mantovani Moderatore • ultima modifica di

      Parser PHP per XML tradedoulber

      Ciao a tutti, sto provando (ma sono ignorante in materia) a fare un parser come segue:

      $xml = simplexml_load_file('http://api.tradedoubler.com/1.0/vouchers?token=6D71B80D1A48154E2E96BC797C5DBB78FE0B0E3A');

      echo "<h1>... e altri Codici Sconto</h1>";
      echo "<ul>";
      foreach($xml->voucherList->voucher->id as $id)
      {
      echo '<li><a href="'.$item->link.'">'.$item->title.'</a> '.$item->description.' </li>';
      }
      echo "</ul>";

      C'è qualcosa di sbagliato forse nel file perchè non riesco a caricarlo (mi da Start tag expected, '<' not found).
      Poi anche altri errori nell'argomento del foreach..

      Qualcuno può darmi una mano?
      Grazie,

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • F
        francesco.di.caprio User Attivo • ultima modifica di

        Non devi effettuare tutte le operazioni a priori, dando per scontato che la prima istruzione vada bene. Se tu apri nel browser l'URL che hai passato alla simplexml_load_file, vedi che ti restituisce 10: Could not authenticate token due to an internal error, non un XML valido. Risolvi il problema con tradedoubler e poi provi a rieseguire lo script. In ogni caso, effettua prima un controllo sulla validità di quello che ricevi prima di iniziare a scorrere un file che potrebbe potenzialmente non esistere.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • Pietro Mantovani
          Pietro Mantovani Moderatore • ultima modifica di

          Venerdì il file c'era.. verifico.

          Aggiornamento: pare che Tradedoubler abbia appena cambiato qualcosa.. attendo loro indicazioni.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • F
            francesco.di.caprio User Attivo • ultima modifica di

            Forse ho capito... elimina lo spazio presente nella stringa passata alla simplexml_load_file(). Se lo elimini l'XML si visualizza... vedi se ti dà qualche altro errore.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • Pietro Mantovani
              Pietro Mantovani Moderatore • ultima modifica di

              Grazie Francesco.
              scusa l'ignoranza: come faccio a togliere lo spazio (e dovè..)?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • ultima modifica di

                Ciao,
                intende lo spazio nell'url, che si trova tra gli ultimi caratteri.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • Pietro Mantovani
                  Pietro Mantovani Moderatore • ultima modifica di

                  Non so perchè sul forum avevo postato quegli spazi, scusate. Il problema però rimane: su un browser mi visualizza il file XML, ma indica all'inizio: "This XML file does not appear to have any style information associated with it. The document tree is shown below." e penso che l'errore che segue "parser error : Start tag expected, '<' not found in" sia una diretta conseguenza.
                  Da quello che ci capisco (poco) mi viene da pensare che non si tratti di un XML non formattato correttamente e che sia necessario scrivere due righe di codice per farglielo "digerire",

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • F
                    francesco.di.caprio User Attivo • ultima modifica di

                    In realtà quel messaggio non c'entra in prima persona, è generato dal browser. Tuttavia l'XML che viene preso in considerazione è privo dell'intestazione XML, effettivamente, basta fare "Visualizza sorgente" all'apertura di quel link per notare che è assente. Ti consiglio di modificare l'algoritmo come segue:

                    [php]
                    <?php

                    $header = '<?xmlversion="1.0" encoding="UTF-8"?>';
                    $filexml = file_get_contents("h t t p ://api.tradedoubler.com/1.0/vouchers?token=6D71B80D1A48154E2E96BC797C5DBB78FE0B0E3A");
                    $xml = simplexml_load_string($header.$filexml);

                    ?>
                    [/php]

                    E poi continui con il tuo foreach... ovviamente togli gli spazi dall'url.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • Pietro Mantovani
                      Pietro Mantovani Moderatore • ultima modifica di

                      Ti ringrazio, purtroppo anche così mi presenta l'errore "Entity: line 1: parser error : Start tag expected, '<' not found"

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      Caricamento altri post
                      Rispondi
                      • Topic risposta
                      Effettua l'accesso per rispondere
                      • Da Vecchi a Nuovi
                      • Da Nuovi a Vecchi
                      • Più Voti