$xml = file_get_contents(example.com);
$dom = new DomDocument();
$dom->loadXML($xml);
$items = $dom->documentElement;
foreach($items->childNodes as $item) {
$childs = $item->childNodes;
foreach($childs as $i) {
echo $i->nodeValue . "<br />";
}
}
现在我在第二个foreach中得到了这个警告:
Warning: Invalid argument supplied for foreach() in file_example.php on line 14
请帮帮我们。谢谢!
答案 0 :(得分:7)
某些节点没有子节点,因此您将一个null(无效)参数传递给foreach(就像警告所说的那样)。
要避免警告,您需要检查当前节点是否有子节点。为此,您可以使用DOMNode::hasChildNodes()
方法:
foreach($items->childNodes as $item) {
if ($item->hasChildNodes()) {
$childs = $item->childNodes;
foreach($childs as $i) {
echo $i->nodeValue . "<br />";
}
}
}