2012-07-04 63 views
0

我想用php檢索RSS feed。 XML有許多不同的節點。我不知道如何顯示<dc:>,<rdf:>,<syn:>節點。如何在這種情況下使用PHP檢索RSS提要?

飼料

<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

看看是否有幫助:http://stackoverflow.com/questions/595946/parse-xml-with-namespace-using-simplexml –

回答

2

試試這個:

$xmlStr= simplexml_load_string($contents); 

然後你可以使用的print_r轉儲對象$xmlStr

echo print_r($xmlStr) 

或在browswer

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

這樣你可以檢查對象,如果這是你試圖做什麼。訪問各個值/節點:

echo $xmlStr->node 

並且應該返回節點的內容。

不知道你這樣做會發生什麼,但你也可以嘗試以下方法,但它取決於$xmlStr也許內容...:

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

它確實幫助我。非常感謝。 – FlyingCat

1

如果它是一個符合標準的RSS提要,爲什麼不使用simplepie或類似的東西?一個專用的解析器幾乎總是比滾動你自己:) :)

+0

感謝您的建議,但我只想用PHP完成工作。 +1雖然。 – FlyingCat