2012-02-10 46 views
0

您好,我從輸出$ doc獲得以下php代碼,我希望將所有[content]項目放在一起用於標記雲中。如何將所有[內容]項目提取到一個變量中?將SimpleXMLElement對象[content]元素結合到一個變量中

$ch = curl_init("http://api.sysomos.com/hb/v1/heartbeat/rss?startid=0&hbrss=DUpnCTqppKjx4q1U6FXd5SWOPFUa2ltLm1haXJAYi1hbmQtcS5jby51aw..&maxC=6&max=30&hid=2535& fTs=me&dRg=7&tab=beats&scO=Recency&"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$doc = new SimpleXmlElement($data, LIBXML_NOCDATA); 
print_r($doc); 

回答

0

沒有進一步澄清,看來你遇到麻煩個人<content>節點的字符串值?如果是這樣,考慮以下因素:

$str = ' 
<xml> 
    <content>content1</content> 
    <somethingElse>DOH!</somethingElse> 
    <content>content2</content> 
    <content>content3</content> 
</xml> 
'; 

$doc = new SimpleXMLElement($str); 
$vals = array(); 
foreach ($doc->content as $content) { 
    $vals[] = (string) $content; 
} 

print_r($vals); 

這將輸出:

Array 
(
    [0] => content1 
    [1] => content2 
    [2] => content3 
) 

UPDATE

根據你的評論,你可以使用一個額外的implode調用,比如用上述同樣的戰術所以:

$vals = implode('', $vals); 
echo $vals; // outputs: content1content2content3 

或,修改原來的循環:

$vals = ''; 
foreach ($doc->content as $content) { 
    $vals .= (string) $content; 
} 
echo $vals; // outputs: content1content2content3 
+0

我想將所有的內容節點合併成一個字符串。對不起,如果這不清楚的問題。 – 2012-02-10 20:19:58

+0

@ BenPaton更新回答 – rdlowrey 2012-02-10 20:23:00

+0

感謝您的幫助print_r只是打印出「Array()」在頁面上,任何想法,爲什麼這是?這是來自第一塊代碼,而不會將內容節點聚合在一起。 – 2012-02-10 20:35:53