I am creating some EPG for the website. I do not have experience. Unfortunately, I’m finding it difficult. How can I get the icons, what is wrong in this code?`
Final code working: <?php $url = 'XML URL LINK'; $xml=simplexml_load_file("$url"); $progs = $xml->xpath('//programme'); foreach ($progs as $prog) { $title = $prog->xpath('./title/text()')[0]; $link = (count($prog->xpath('./icon/@src'))>0) ? ($prog->xpath('./icon/@src'))[0] : ("No icon"); echo "Logo: <img src='{$link}'> <br/>" ; echo "Title : ".$title. "<br>"; echo "<br>"; } ?>
Advertisement
Answer
If I understand you correctly, something like this should get you close to what I think you are trying to do. Note that not all programs have associated logos.
$progs = $xml->xpath('//programme'); foreach ($progs as $prog) { $title = $prog->xpath('./title/text()')[0]; $link = (count($prog->xpath('./icon/@src'))>0) ? ($prog->xpath('./icon/@src'))[0] : ("No icon"); echo($title .": ". $link); echo "rn"; }
EDIT:
I’m still not entirely sure I understand what you want, but it sounds like you need to wrap the whole thing in html and output to a browser. Something like:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <?php $url = 'https://raw.githubusercontent.com/HelmerLuzo/TDTChannels_EPG/master/TDTChannels_EPG.xml'; $xml=simplexml_load_file("$url"); $progs = $xml->xpath('//programme'); foreach ($progs as $prog) { $title = $prog->xpath('./title/text()')[0]; $link = (count($prog->xpath('./icon/@src'))>0) ? ($prog->xpath('./icon/@src'))[0] : ("No icon"); echo "Logo: <img src='{$link}'> <br/>" ; echo "Title : ".$title. "<br>"; echo "<br>"; } ?> </body> </html>