PHP SimpleXML + Get Attribute

2019-01-09 08:56发布

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

7条回答
手持菜刀,她持情操
2楼-- · 2019-01-09 09:53

You need to use attributes() to get the attributes.

$id = $xml->show->attributes()->id;

You can also do this:

$attr = $xml->show->attributes();
$id = $attr['id'];

Or you can try this:

$id = $xml->show['id'];

Looking at the edit to your question (<show> is your root element), try this:

$id = $xml->attributes()->id;

OR

$attr = $xml->attributes();
$id = $attr['id'];

OR

$id = $xml['id'];
查看更多
登录 后发表回答