0

他社の API を使用して他社のデータベースから情報を取得していますが、XML 形式で返されます。私は 2 つのことを達成しようとしていますが、いくつかの問題があります。

1つ目は、生の XML データを表形式にフォーマットして、ブラウザーで簡単に表示できるようにしたいと考えています。

2番目私が受け取っているデータは、ID/ユーザー名/パスワード/メールです。各ユーザーIDがDBに挿入された行になるように、そのデータをDBにインポートできるようにしたいと思います(DBの作業を行うことができますが、各ユーザーを個別に処理する方法がわかりません)

API のフォーマットはこのようになって<API> <message> <user> <id> </id> <login> </login> <password> </password> <message> </message> </API>いますが、ユーザーは 1 人ではなく数百人になります。

$array の出力を実行するたびに、意図したとおりにデータが大きなブロブとして取得されます。ただし、更新されたコード (以下) を使用すると、ユーザーが有効なインデックスではないというエラーが表示されます。また、データが含まれていない (境界線のみ) テーブルの開始と思われるものも受け取ります。

テーブルがデータを受信して​​いない理由を理解するのを手伝ってくれる人がいれば (または、より良い方法についてアドバイスをくれれば)、とても感謝しています。

2番を理解するのを手伝ってくれる人への追加ポイント.

エラーはNotice: Undefined index: user in /home/public_html/new/test.php on line 36 、コードで 36 行目がコメント化されていることです

これが私のコードの下部です:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Method execution
$result = curl_exec($ch);
// Close CURL session

$array = json_decode(json_encode((array)simplexml_load_string($result)),1);

$array_user=$array['user']; //line 36

$tab='<table border="1" width="400">';
for ($j=1; $j< count($array_user) ; $j++) {

  $tab.='<tr>';
  $tab.='<td>'.$array_user[$j]['id'].'</td>';
  $tab.='<td>'.$array_user[$j]['login'].'</td>';
  $tab.='<td>'.$array_user[$j]['mail'].'</td>';
 $tab.='<td>'.$array_user[$j]['date'].'</td>';
 $tab.='</tr>';
}

$tab.='</table>';

echo $tab;


?>
4

2 に答える 2

0

これは、 を使用して XML をループする方法ですsimplexml
これからテーブルまたはクエリを作成できます。

$xml = simplexml_load_string($x); // XML is in $x

foreach ($xml->user as $user) {

    echo $user->id . ': ' . $user->login . ' : '
    echo $user->password . ' : ' . $user->message . '<br />;
}

動作を確認してください: http://codepad.viper-7.com/KhWsla

ところで:あなたのxmlは修理が必要です:

<API>
    <user>
        <id>1</id>
        <login>michi</login>
        <password>12345</password>
        <message>hi!</message>
    </user>
</API>
于 2013-04-17T22:26:22.760 に答える