1

我正在尝试获取 rss 提要并将节点值推送到数组中。我虽然我的以下 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
        )

)

知道如何改变这个吗?非常感谢。

4

1 回答 1

2

您需要将每个节点转换为一个字符串(它目前是一个 SimpleXMLElement),以便在一个简单数组中取回一个纯字符串,并从title[]数组中检索第一项。

SimpleXML__toString()在其对象上实现了魔法方法,这就是为什么它会以它对 的方式进行响应print_r(),但是要将其作为字符串使用,您需要将其转换为这样。

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;
于 2012-07-05T15:45:12.573 回答