PHP SimpleXML + Get Attribute
The XML I am reading looks like this:
<show id="8511">
<name>The Big Bang Theory</name>
<link>http://www.tvrage.com/The_Big_Bang_Theory</link>
<started>2007-09-24</started>
<country>USA</country>
<latestepisode>
<number>05x23</number>
<title>The Launch Acceleration</title>
</latestepisode>
</show>
To get (for example) The number of the latest episode, I would do:
$ep = $xml->latestepisode[0]->number;
This works just fine. But what would I do to get the ID from <show id="8511">
?
I have tried something like:
$id = $xml->show;
$id = $xml->show[0];
But none worked.
Update
My code snippet:
$url = "http://services.tvrage.com/feeds/episodeinfo.php?show=".$showName;
$result = file_get_contents($url);
$xml = new SimpleXMLElement($result);
//still doesnt work
$id = $xml->show->attributes()->id;
$ep = $xml->latestepisode[0]->number;
echo ($id);
Ori. XML:
http://services.tvrage.com/feeds/episodeinfo.php?show=The.Big.Bang.Theory
This should work.
$id = $xml["id"];
Your XML root becomes the root of the SimpleXML object; your code is calling a chid root by the name of 'show', which doesn't exist.
You can also use this link for some tutorials: http://php.net/manual/en/simplexml.examples-basic.php
You need to use attributes
I believe this should work
$id = $xml->show->attributes()->id;
This should work. You need to use attributes with type (if sting value use (string))
$id = (string) $xml->show->attributes()->id;
var_dump($id);
Or this:
$id = strip_tags($xml->show->attributes()->id);
var_dump($id);