我有一个XML文件,并希望用php将数据插入到数据库中。 XML文件的示例是:PHP致命错误:调用非对象上的成员函数item()
<shops>
<shop>
<code>HM</code>
<name>Beauty</name>
<address>
<address_name>George St </address_name>
<city>New York</city>
</address>
</shop>
</shops>
我想要的代码,名称,ADDRESS_NAME和城市值插入到我的PHP数据库。
我的PHP代码:
$xmlDoc = new DOMDocument();
$xmlDoc->load("shops.xml");
$xmlObject = $xmlDoc->getElementsByTagName('shop');
$itemCount = $xmlObject->length;
for ($i=0; $i < $itemCount; $i++) {
$name = $xmlObject->item($i)->getElementsByTagName('name')->item(0)->childNodes->item(0)->nodeValue;
$code = $xmlObject->item($i)->getElementsByTagName('code')->item(0)->childNodes->item(0)->nodeValue;
$sql = "INSERT INTO `shop` (name,code) VALUES ('$name', '$code')";
mysql_query($sql);
}
$xmlObject_n = $xmlDoc->getElementsByTagName('address');
for ($i=0; $i < $itemCount; $i++) {
$address_n = $xmlObject_n->item($i)->getElementsByTagName('address_name')->item(0)->childNodes->item(0)->nodeValue;
$city = $xmlObject_n->item($i)->getElementsByTagName('city')->item(0)->childNodes->item(0)->nodeValue;
$sql_n = "INSERT INTO `place` (address,city) VALUES ('$address_n', '$city')";
mysql_query($sql_n);
}
虽然在第一个for循环表店的数据正确加载,我获得了第二个循环以下错误:
PHP Fatal error: Call to a member function item() on a non-object
不任何人有任何想法如何解决这个问题,以获得元素地址的值?
非常感谢
在'$ xmlDoc->负载卸下中'“' (“shops”.xml“);'**太多引号**单独突出显示的代码应该告诉您 – RiggsFolly
我没有看到任何标签'number'或'siteid'。 –
@MarcB编辑一个好主意吗?你确定这只是一个错字 – RiggsFolly