htmlpower
htmlpower

Reputation: 169

Extracting Data from xml file using SimpleXml

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];
 }

Upvotes: 1

Views: 374

Answers (2)

Rakesh Jakhar
Rakesh Jakhar

Reputation: 6388

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];

Upvotes: 0

Nigel Ren
Nigel Ren

Reputation: 57121

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.

Upvotes: 4

Related Questions