我正在尝试获取rss feed并将节点值推送到数组。我虽然我的以下PHP代码将创建一个单独的数组而不是多维数组。
//parse rss
$contents= file_get_contents('http://rss..');
$xmlStr= simplexml_load_string($contents);
$array=array();
foreach ($xmlStr->item as $node):
$array[]=$node->title;
echo '<pre>';
print_r($array);
echo '<pre>';
endforeach;
但结果我的数组输出是
Array
(
[0] => SimpleXMLElement Object
(
[0] => App Store Bug Corrupts Binaries; Angry Birds Crash
)
[1] => SimpleXMLElement Object
(
[0] => In UK, HTC Defeats Apple's "Obvious" Slide Unlock Patent
)
[2] => SimpleXMLElement Object
(
[0] => WikiLeaks Begins Release of 2.5m Syrian Emails
)
[3] => SimpleXMLElement Object
(
[0] => A Critical Examination of Bill Gates' Philanthropic Record
)
[4] => SimpleXMLElement Object
(
[0] => Ask Slashdot: How Does Your Company Evaluate Your Performance?
)
[5] => SimpleXMLElement Object
(
[0] => UAV Cameras an Eye In the Sky For Adventurous Filmmakers
)
[6] => SimpleXMLElement Object
(
[0] => Copyrights To Reach Deep Space
)
[7] => SimpleXMLElement Object
(
[0] => FDA Approves HIV Home-Use Test Kit
)
[8] => SimpleXMLElement Object
(
[0] => Texas Scientists Regret Loss of Higgs Boson Quest
)
[9] => SimpleXMLElement Object
(
[0] => Icelandic MP Claims US Vendetta Against WikiLeaks
)
[10] => SimpleXMLElement Object
(
[0] => Microsoft's 'Cannibalistic Culture'
)
[11] => SimpleXMLElement Object
(
[0] => Android 4.1 Jelly Bean Review
)
)
知道怎么改变这个吗?非常感谢。
答案 0 :(得分:2)
您需要将每个节点转换为字符串(它当前是SimpleXMLElement),以便在简单数组中返回一个纯字符串,并从title[]
数组中检索第一个项目。
SimpleXML在其对象上实现__toString()
魔术方法,这就是为什么它会像print_r()
那样响应它,但是要将它作为字符串检索,你需要将它作为字符串。< / p>
foreach ($xmlStr->item as $node):
// Cast the first array value to a string
$array[] = (string)$node->title[0];
echo '<pre>';
print_r($array);
echo '<pre>';
endforeach;