我正在尝试使用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;
答案 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或类似的东西?专用解析器几乎总是比滚动自己更好:)