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 回答