使用PHP DOMDocument解析XML

时间:2015-09-18 21:29:45

标签: php domdocument

我一直在寻找解决方案,但无法在任何地方找到。

我正在尝试解析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 = "";
} 
  

注意:尝试获取非对象的属性   第72行/home/s/public_html/import_xml.php

     

致命错误:调用非对象中的成员函数项()   第72行/home/s/public_html/import_xml.php

错误是因为XML中缺少<image1>

关于修复的任何想法?

1 个答案:

答案 0 :(得分:0)

我就是这样做的。不确定它是否是“最好的”方式,但它有效......

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