如何获取 RSS XML 子对象值


How To Get RSS XML Children Object Values

我有一个包含以下格式的rss xml数据。

<rss version="2.0"
  xmlns:ht="http://www.yahoo.com/gold"
  <channel>
    <item>
      <title>Title 1</title>
      <description>description 1</description>
      <ht:price>$22</ht:price>
   </item>
 </channel>

所以请提供如何捕获子对象,我已经尝试过

 $url = "http://www.yahoo.com/gold/rss/xml";
 $xml = simplexml_load_file($url);
 for ( $i = 0; $i < 10; $i++ ){
      $title = $xml->channel->item[$i]->title;
      $description = $xml->channel->item[$i]->description;
      $goldprice =  $xml->channel->item[$i]->children('http://www.yahoo.com/gold'); 
      $itemprice = $goldprice->price;
echo "</br>" ;
echo $title;
echo "</br>" ;
echo $description;
echo "</br>" ;
echo $itemprice;
echo "</br>" ;

但是我收到错误致命错误:在非对象上调用成员函数 children() ...

请提供解决方案如何解决此问题?

谢谢

您展示的显然不是您正在使用的完整 XML,但这里有一个 SimpleXML 的人为示例:

$xml = '<root><title>Title 1</title><description>Description 1</description><price>$22</price></root>';
//      ^^^^^^                                                                                ^^^^^^^
//      added to make this example work
$doc = simplexml_load_string($xml);
echo $doc->title; // Title 1
echo $doc->description; // Description 1
echo $doc->price; // $22

有比SimpleXML更好的工具,例如DOMDocument;如果你有时间,我建议你调查一下。