我一直在寻找解决这个问题的方法,但在任何地方都找不到。
我正试图解析XML
文件,但某些TagNames
从XML
中缺失。一些帖子建议使用对象长度,但这也不起作用。
if ($xmlObject->item($i)->getElementsByTagName('image1')->item(0)->childNodes->item(0)->length > 0) {
$product_image1 = $xmlObject->item($i)->getElementsByTagName('image1')->item(0)->childNodes->item(0)->nodeValue;
} else {
$product_image1 = "";
}
注意:尝试获取非对象的属性/home///public_html/import_xml.php第72行
致命错误:在非对象上调用成员函数item()/home///public_html/import_xml.php第72行
错误是由于<image1>
在XML中缺失。
对修复有什么想法吗?
我是这样做的。我不确定这是不是"最好"的方式,但它确实有效…
foreach ($xmlDoc->getElementsByTagName('product')->item($i)->childNodes as $node) {
if ($node->nodeType === XML_ELEMENT_NODE) {
$nodes[] = $node->nodeName;
echo "Processing node " . $node->nodeName . "<br />";
}
}
if (in_array("name", $nodes)) {
$product_name = $xmlObject->item($i)->getElementsByTagName('name')->item(0)->childNodes->item(0)->nodeValue;
} else {
$product_name = "";
}