我正在尝试使用一个小的php脚本将客户端的产品列表从Webservices xml文件获取到SQL数据库,但我似乎无法让它工作。
相关代码如下:
$c = 0;
...
$xml = simplexml_load_file($completeurl);
$listingsArray = $xml->listings->listing;
foreach($listingsArray as $listing){
$addition[0] = $listing[$c]->type;
$addition[1] = $listing[$c]->condition;
//etcetera
c = c + 1;
}
XML 文件的格式如下:
<inventory>
<listings>
<listing>
//tags for type, condition, etc
</listing>
</listings>
</inventory>
$completeurl 是一个字符串,其中包含 xml 文件的 url$addition是代码前面定义的数组
我已经为此工作了一段时间,但我似乎无法弄清楚错误在我的代码中的位置。我遇到的问题是$listingsArray应该有接近 100 个元素,但不断出现 0。有人看到我做错了什么吗?
编辑:我尝试更改
$listingsArray = $xml->listings->listing;
自
$listingsArray = $xml->listings;
但是空字符串仍在写入$addition数组。不过,var_dump列表数组显示所有信息都在那里。
如果你想要每个列表,我相信你太深入了。
$listingsArray = $xml->listings->listing;
应该是
$listingsArray = $xml->listings;
foreach($listingsArray as $listing){
$addition[0] = $listing[$c]->type;
$addition[1] = $listing[$c]->condition;
//etcetera
}
另外什么是$c? 它还有助于发布您的确切错误。 调试插入时,var_dumps非常有用。 如果您认为问题$listingArray
打印出来,看看它是否包含您想要的数据。
正在更改
$listingsArray = $xml->listings->listing;
自
$listingsArray = $xml->listings;
应该解决问题。您将$listingsArray设置为列表数组,然后 foreach 尝试向下移动另一个级别