在这种情况下如何使用PHP检索RSS提要?

时间:2012-07-04 02:10:09

标签: php rss

我正在尝试使用php检索RSS提要。 xml有许多不同的节点。我不确定如何显示<dc:>,<rdf:>,<syn:>节点。

进料

<item>xxx</item>
....
....
<dc:name>John</dc:name>    //I am not sure how to get this content
<dc:title>Manager</dc:title>
<syn:updateTime>1970-01-01</syn:updateTime>
<rdf:Seq>
   <rdf:li rdf:resource="http://xxx/>
   <rdf:li rdf:resource="http://xxx/>
</rdf:Seq>

PHP

$contents= file_get_contents($url);

$results=new SimpleXMLElement($contents);

    //not sure what I can do to display those special nodes...
    foreach ($results->channel as $node):

        echo $node->item; //only show item content  

    endforeach;

2 个答案:

答案 0 :(得分:2)

试试这个:

$xmlStr= simplexml_load_string($contents);

然后您可以使用print_r转储对象$xmlStr

echo print_r($xmlStr)

或在浏览器中

echo "<pre>".print_r($xmlStr)."</pre>";

通过这种方式,您可以检查对象,如果这是您正在尝试执行的操作。访问单个值/节点:

echo $xmlStr->node

那应该返回节点的内容。

如果您这样做,不确定会发生什么,但您也可以尝试以下操作,但这取决于$xmlStr的内容,或许......:

foreach($xmlStr as $key => $value) {
    print "$key => $value\n";
}

答案 1 :(得分:1)

如果它是符合标准的RSS源,为什么不使用simplepie或类似的东西?专用解析器几乎总是比滚动自己更好:)