我有一个类似于这样的XML Feed:
我可以使用simpleXML轻松解析标题:
$pictureBoxXMLFeed = simplexml_load_file('https://www.picturebox.tv/xml/feeds/FindAnyFilm/FindAnyFilm.xml');;
echo $pictureBoxXMLFeed->entry[1]->title;
foreach($pictureBoxXMLFeed->entry as $value){
echo $value->title;
echo '<br/>';
}
但我需要抓住Feed中的链接元素,如下所示:
<link href="http://www.picturebox.tv/watchnow?id=UKIC30" rel="alternate"/>
仅供参考,这不起作用:
echo $ value-&gt; link;
感谢您的帮助......
答案 0 :(得分:3)
这是你的意思吗?
$string = '
<entry>
<link href="http://www.picturebox.tv/watchnow?id=UKIC30" rel="alternate"/>
</entry>';
$simpleXML = simplexml_load_string($string);
foreach($simpleXML->link->attributes() as $name => $value) {
echo $name.': '.$value.'<br />';
}
给出:
href: http://www.picturebox.tv/watchnow?id=UKIC30
rel: alternate
答案 1 :(得分:1)
在每个$ value中,它是一个simplexml_element,你的href是一个属性,所以你需要检查
foreach ($value->attributes as $a) {
if ($a->getName() == "href") { do something; }
}
或$value->{"href"};
http://us2.php.net/manual/en/class.simplexmlelement.php
答案 2 :(得分:1)
这个怎么样?
$pictureBoxXMLFeed = simplexml_load_file('https://www.picturebox.tv/xml/feeds/FindAnyFilm/FindAnyFilm.xml');;
foreach($pictureBoxXMLFeed->entry[1] as $value){
if($value->getName() == 'link') {
echo $value->asXML();
}
}
答案 3 :(得分:0)
href是一个属性,所以:
foreach($pictureBoxXMLFeed->entry as $value){
echo $value->link['href'];
echo '<br/>';
}
或
foreach($pictureBoxXMLFeed->entry as $value){
echo $value->link->attributes()->href;
echo '<br/>';
}
答案 4 :(得分:-3)
试试这个:
$pictureBoxXMLFeed = simplexml_load_file('https://www.picturebox.tv/xml/feeds/FindAnyFilm/FindAnyFilm.xml',LIBXML_NOEMPTYTAG);
然后看看link
是否来了......