使用SimpleXml从xml文件中提取数据

Hello I am trying to extract data from an XML file using SimpleXml but it's not extracting the LA 1 from display-name tag

This is the XML :

<tv generator-info-name="munich" generator-info-url="http://test.com">
    <channel id="254">
        <display-name lang="es">LA 1</display-name>
    </channel>
</tv>

This is my code which I am using to extract the id attribute from channel tag :

 $epg = simplexml_load_file("epg.xml") or die("Error: Cannot create object");
 foreach($epg->channel as $canal) {
     echo $canal[id];
 }

As the name of the element you want to display has a - in it, you will need to output the element using (I cast it to a string just to be pedantic)...

echo (string)$canal->{'display-name'};

Using

$canal->display-name

will be interpreted as $canal->display minus name.

You can use xml_parser_create

$xml = '<tv generator-info-name="munich" generator-info-url="http://test.com">
   <channel id="254">
    <display-name lang="es">LA 1</display-name>
   </channel>
</tv>';
$xml = new SimpleXMLElement($string);
echo $xml->xpath('//display-name')[0];