从网络服务 xml 文件读取时出错


Error reading from webservices xml file

我正在尝试使用一个小的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 尝试向下移动另一个级别