Parsing XML with PHP DOMDocument


Parsing XML with PHP DOMDocument

我一直在寻找解决这个问题的方法,但在任何地方都找不到。

我正试图解析XML文件,但某些TagNamesXML中缺失。一些帖子建议使用对象长度,但这也不起作用。

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 = "";
}