gpt4 book ai didi

PHP fatal error : Call to a member function item() on a non-object

转载 作者:行者123 更新时间:2023-11-28 23:28:33 25 4
gpt4 key购买 nike

我有一个 XML 文件,想用 php 将数据插入数据库。XML 文件的示例是:

<shops>
<shop>
<code>HM</code>
<name>Beauty</name>
<address>
<address_name>George St </address_name>
<city>New York</city>
</address>
</shop>
</shops>

我想用 php 将 code、name、address_name 和 city 的值插入到我的数据库中。

我的 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 循环中 table shop 的数据已正确加载,但第二个循环出现以下错误:

PHP Fatal error: Call to a member function item() on a non-object

有谁知道如何解决这个问题以获得元素地址的值?

非常感谢

最佳答案

你没有<number>标记在您的 XML 中,这意味着:

$name =$xmlObject->item($i)->getElementsByTagName('number')->item(0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

将返回一个空数组,因为没有匹配的标签。

如果一个标签是可选的,那么你不能假设它会在那里,你的 DOM 代码必须考虑到这一点:

$numbers = $xmlObject->item($i)->getElementsByTagName('number');
if ($numbers->length > 0) {
$number = $numbers->item(0);
}

关于PHP fatal error : Call to a member function item() on a non-object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com