我正在阅读的XML看起来像这样:
<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>
要获得(例如)最新一集的编号,我会这样做:
$ep = $xml->latestepisode[0]->number;
这很好用。但是如何从<show id="8511">
获取ID?
我尝试过类似的事情:
$id = $xml->show;
$id = $xml->show[0];
但都没有效果。
更新
我的代码段:
$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);
大利。 XML:
http://services.tvrage.com/feeds/episodeinfo.php?show=The.Big.Bang.Theory
答案 0 :(得分:31)
这应该有用。
$id = $xml["id"];
您的XML根目录成为SimpleXML对象的根;你的代码通过'show'的名称来调用chid root,这个名称不存在。
您也可以使用此链接获取一些教程:http://php.net/manual/en/simplexml.examples-basic.php
答案 1 :(得分:12)
答案 2 :(得分:9)
这应该有效。 您需要使用类型为(字符串值使用(字符串))
的属性$id = (string) $xml->show->attributes()->id;
var_dump($id);
或者这个:
$id = strip_tags($xml->show->attributes()->id);
var_dump($id);
答案 3 :(得分:7)
您需要使用attributes()
来获取属性。
$id = $xml->show->attributes()->id;
你也可以这样做:
$attr = $xml->show->attributes();
$id = $attr['id'];
或者你可以试试这个:
$id = $xml->show['id'];
查看问题的编辑(<show>
是您的根元素),试试这个:
$id = $xml->attributes()->id;
OR
$attr = $xml->attributes();
$id = $attr['id'];
OR
$id = $xml['id'];
答案 4 :(得分:3)
试试这个
$id = (int)$xml->show->attributes()->id;
答案 5 :(得分:0)
您需要正确设置XML
的格式,并让其使用<root></root>
或<document></document>
任何内容。请参阅http://php.net/manual/en/function.simplexml-load-string.php上的XML规范和示例
$xml = '<?xml version="1.0" ?>
<root>
<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>
</root>';
$xml = simplexml_load_string ( $xml );
var_dump ($xml->show->attributes ()->id);
答案 6 :(得分:0)
使用SimpleXML objecto正确加载xml文件后,您可以执行print_r($xml_variable)
,您可以轻松找到可以访问的属性。正如其他用户所说$xml['id']
也为我工作。