Php 将SimpleXMLElement对象[content]元素组合到一个变量中

Php 将SimpleXMLElement对象[content]元素组合到一个变量中,php,curl,rss,simplexml,Php,Curl,Rss,Simplexml,您好,我有以下php代码,从输出$doc中,我想获取所有[content]项,并将它们放在一起,以便在标记云中使用。如何将所有[内容]项提取到一个变量中 $ch = curl_init("http://api.sysomos.com/hb/v1/heartbeat/rss?startid=0&hbrss=DUpnCTqppKjx4q1U6FXd5SWOPFUa2ltLm1haXJAYi1hbmQtcS5jby51aw..&maxC=6&max=30&hid=253

您好,我有以下php代码,从输出$doc中,我想获取所有[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);

在没有进一步说明的情况下,您似乎很难获取单个
节点的字符串值?如果是,请考虑以下内容:

$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);
更新

根据您的评论,您可以使用与上述相同的策略进行额外的
内爆
调用,如下所示:

$vals = implode('', $vals);
echo $vals; // outputs: content1content2content3
或者,修改原始循环以执行以下操作:

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

我正在尝试将所有内容节点合并为一个字符串。如果问题中不清楚,很抱歉。感谢您的帮助,打印机似乎只是将“Array()”打印到页面上,您知道这是为什么吗?这是从第一个代码块开始的,没有尝试将内容节点内爆。@BenPaton是的,我只包含了
print\r
,以便您可以看到结果数组的内容。这就是
print\r
应该做的。您可以安全地删除它。由于某些原因,找不到内容节点,因此$VAL为空。内容节点是否会降低一级,例如$doc->entry->0->content?最终工作代码:
$ch=curl\u 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_头,0)$数据=curl_exec($ch);卷曲关闭($ch)$doc=新的simplexmlement($data)$VAL=数组();foreach($doc->entry as$entry){$vals[]=(字符串)$entry->content;}$vals=内爆('''.$vals);echo$VAL
$vals = '';
foreach ($doc->content as $content) {
  $vals .= (string) $content;
}
echo $vals; // outputs: content1content2content3