2

次のように返される XML ファイルがあります。

<games>
 <game>
  <appID>1234</appID>
  <name>game 1</name>
 </game>
 <game>
  <appID>5678</appID>
  <name>game 2</name>
 </game>
 <game>
  <appID>9123</appID>
  <name>game 3</name>
 </game>
</games>

コードで url パラメーター gid を $gid に取得し、xml でその appid を検索し、XML で一致する場合は $gamename を割り当てたいと思います。現在、最初のゲームをクリックしたときにのみ機能します。最初の<ゲーム>以降は検索しないようです。

$gid = (int) $_GET['gid'];
$gamespage = simplexml_load_file("http://gamepage.com/games?xml=1");
$gamelist = $gamespage->games;      
if ($gid == $gamelist->game->appID) {
$appid = $gamelist->game->appID;
$gamename = $gamelist->game->name; }
else {
echo "No game stats. <br />"; }
4

1 に答える 1

9

これは、 XPath クエリを使用して非常に簡単に行うことができます。

$xpath = $gamespage->xpath('/games/game[appID = ' . $gid . ']/name');
if ($xpath) {
    $appid = $gid;
    $gamename = (string) $xpath[0];
} else {
    echo "No game stats. <br />";
}
于 2012-08-05T01:23:23.357 に答える