Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13

    Stampare dei valori XML in PHP

    Salve, sto cercando di far stampare un file PHP dove stampi solo due valori di due tag in xml, title e artists. Ecco il file XML:
    Codice PHP:

    <tracks>       
    <
    radioname>Ixtreme Radio</radioname>        
    <
    rank>0</rank>        
    <
    isradionomy>1</isradionomy>        
    <
    radurl>http://www.radionomy.com/ixtremeradio</radurl>        
    <track>            
    <
    uniqueid>4014324288</uniqueid>            
    <
    title>Mask Off</title>           
     <
    artists>Future</artists>            
    <
    starttime>2017-06-28 23:25:02.303</starttime>            
    <
    playduration>201803</playduration>            <current>1</current>                                <cover>http://i3.radionomy.com/tracks/232/04aebbff-c2d9-4d47-a570-44b5f55edd3d?radiouid=80b5e81c-c769-478a-aee7-fbe149aacfe3</cover>                                                             <callmeback>68525</callmeback>                                                                        </track>                     </tracks> 
    Ho provato a fare così:
    Codice PHP:
    <?php
    $xml
    =simplexml_load_file("http://api.radionomy.com/currentsong.cfm?radiouid=80b5e81c-c769-478a-aee7-fbe149aacfe3&apikey=cf415862-c0ac-4085-bc03-be80a26f9063&callmeback=yes&type=xml&cover=yes&previous=yes.xml");

    echo 
    "Canzone in onda: $xml->title di $xml->artists";?>
    ma non funziona.. come posso fare?
    grazie
    Ultima modifica di Kitt3000; 04-07-2017 a 19:39

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Title start dentro i tag tracks e track, devi percorrere tutto l'albero per ottenere il valore del tag che ti serve

    Guarda il secondo esempio: http://php.net/manual/en/function.si...-load-file.php

    Ps: Usa print_r per stampare a schermo tutto l'oggetto $xml

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Title start dentro i tag tracks e track, devi percorrere tutto l'albero per ottenere il valore del tag che ti serve

    Guarda il secondo esempio: http://php.net/manual/en/function.si...-load-file.php

    Ps: Usa print_r per stampare a schermo tutto l'oggetto $xml
    Seguendo l'esempio per provare ho scritto questo:
    Codice PHP:
    <?php
    $xml 
    simplexml_load_file("http://api.radionomy.com/currentsong.cfm?radiouid=80b5e81c-c769-478a-aee7-fbe149aacfe3&apikey=cf415862-c0ac-4085-bc03-be80a26f9063&callmeback=yes&type=xml&cover=yes&previous=yes.xml") or die("Error: Cannot create object");

    $xml simplexml_load_string($xml); 

    // echo does the casting for you 
    echo $xml->tracks->track->title;
    // but vardump (or print_r) not! 
    var_dump($xml->tracks->track->title); 
    // so cast the SimpleXML Element to 'string' solve this issue 
    var_dump((string) $xml->tracks->track->title); ?>
    purtroppo non funziona, restituisce questo:
    NULL string(0) ""

    Da cosa dipenderà? Forse non legge bene l'XML?
    Ultima modifica di Kitt3000; 05-07-2017 a 06:13

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13
    Ciao Clasku ho provato così e in parte ho risolto:rte ho risolto
    Codice PHP:
    <?php
    $xml 
    '<tracks>
    <radioname>Ixtreme Radio</radioname>
    <rank>0</rank>
    <isradionomy>1</isradionomy>
    <radurl>http://www.radionomy.com/ixtremeradio</radurl>
    <track>
    <uniqueid>4014324288</uniqueid>
    <title>Mask Off</title>
    <artists>Future</artists>
    <starttime>2017-06-28 23:25:02.303</starttime>
    <playduration>201803</playduration>
    <current>1</current>
    <cover>http://i3.radionomy.com/tracks/232/04aebbff-c2d9-4d47-a570-44b5f55edd3d?radiouid=80b5e81c-c769-478a-aee7-fbe149aacfe3</cover>
    <callmeback>62922</callmeback>
    </track>
    </tracks>'
    ;

    $xmlcont = new SimpleXMLElement($xml);
    echo 
    "Canzone in onda:" $xmlcont->track->title " di " $xmlcont->track->artists;

    ?>
    Lo script mostra correttamente: Canzone in onda:Mask Off di Future

    Purtroppo però a me serve che invece di leggere il file xml dalla variabile $xml lo legga da questo link: http://api.radionomy.com/currentsong...evious=yes.xml

    Ho provato:
    Codice PHP:
    <?php
    $xml 
    simplexml_load_file("http://api.radionomy.com/currentsong.cfm?radiouid=80b5e81c-c769-478a-aee7-fbe149aacfe3&apikey=cf415862-c0ac-4085-bc03-be80a26f9063&callmeback=yes&type=xml&cover=yes&previous=yes.xml");
    $xmlcont = new SimpleXMLElement($xml);
    echo 
    "Canzone in onda:" $xmlcont->track->title " di " $xmlcont->track->artists;

    ?>
    Ma restituisce questi errori
    codice:
    Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Start tag expected, '<' not found in C:\xampp2\htdocs\2017\call_api.php on line 4
    
    
    Warning: SimpleXMLElement::__construct(): in C:\xampp2\htdocs\2017\call_api.php on line 4
    
    
    Warning: SimpleXMLElement::__construct(): ^ in C:\xampp2\htdocs\2017\call_api.php on line 4
    
    
    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp2\htdocs\2017\call_api.php:4 Stack trace: #0 C:\xampp2\htdocs\2017\call_api.php(4): SimpleXMLElement->__construct('\n \t\n ...') #1 {main} thrown in C:\xampp2\htdocs\2017\call_api.php on line 4
    Ultima modifica di Kitt3000; 05-07-2017 a 07:54 Motivo: formattazione testo

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    scarica il file in locale e verificalo, da quello che dice SimpleXMLElement sembra non essere un XML correttamente formattato

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2015
    Messaggi
    13
    Quote Originariamente inviata da clasku Visualizza il messaggio
    scarica il file in locale e verificalo, da quello che dice SimpleXMLElement sembra non essere un XML correttamente formattato
    Ho fatto CTRL + S e scaricato in locale e vedo gli stessi tag che ho messo io, il browser lo legge come un xml infatti escono le > nei tag

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    fai una prova scaricando il file con file_get_contents() e poi passa la stringa che ottieni a SimpleXMLElements
    credo che il problema sia che ci sono dei caratteri prima del primo "<"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.