我有一个包含以下格式的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()
请提供解决方案如何解决?
谢谢,
答案 0 :(得分:1)
您所展示的内容显然不是您正在使用的完整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;如果你有时间,我建议调查一下。