2

小さなphpスクリプトを使用してwebservicesxmlファイルから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配列に書き込まれています。ただし、listingsArrayのvar_dumpは、すべての情報がそこにあることを示しています。

4

2 に答える 2

1

あなたがそれぞれのリストが欲しいなら、私はあなたが子供を深くしすぎていると信じています。

$listingsArray = $xml->listings->listing;

shoudl be

$listingsArray = $xml->listings;

foreach($listingsArray as $listing){
    $addition[0] = $listing[$c]->type;
    $addition[1] = $listing[$c]->condition;
    //etcetera
}

さらに、$ cとは何ですか?また、正確なエラーを投稿するのにも役立ちます。デバッグ時にvar_dumpsの挿入は非常に役立ちます。あなたがprobelmがそれを$listingArray 印刷していると思うなら、それがあなたが望むデータを含んでいるかどうか確かめてください。

于 2012-04-11T17:53:57.923 に答える
0

変化

$listingsArray = $xml->listings->listing;

$listingsArray = $xml->listings;

問題を解決する必要があります。$ ListingsArrayをリストの配列に設定すると、foreachは別のレベルに移動しようとします

于 2012-04-11T17:54:09.737 に答える