我尝试使用以下代码从XML循环多个项目。
$xml = get_data('the-url');
$data = simplexml_load_string($xml);
foreach($data->item AS $item) {
foreach($item AS $test) {
var_dump($test);
}
}
XML看起来像这样:
<xml>
<item>
<name>...</name>
<chapter>...</chapter>
<text>
...
</text>
</item>
<item>
<name>...</name>
<chapter>...</chapter>
<text>
...
</text>
</item>
<item>
<name>...</name>
<chapter>...</chapter>
<text>
...
</text>
</item>
<item>
<name>...</name>
<chapter>...</chapter>
<text>
...
</text>
</item>
<item>
<name>...</name>
<chapter>...</chapter>
<text>
...
</text>
</item>
</xml>
就像现在一样,var_dump($test)
打印出来:
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { } ...
如何让我的代码循环所有项目并打印值?
答案 0 :(得分:0)
试试这个:
$xml_content = file_get_contents('http://url/feed.xml');
$data = simplexml_load_string($xml_content);
foreach ($data->item as $item) {
var_dump($item->bookname);
}
如果需要,您还可以将整个$项目转换为数组:
foreach ($data->item as $item) {
$itemArray = (array) $item;
var_dump($itemArray);
}
当您需要先转换为字符串以返回文本值时,您正在转储对象。
此外,我不认为第二个foreach
正在做任何事情或需要,所以我删除了它。