【问题标题】:Reading Steam Web API with simplexml and PHP使用 simplexml 和 PHP 读取 Steam Web API
【发布时间】:2013-12-14 04:01:24
【问题描述】:

所以我已经阅读了一些关于使用 simpleXML 阅读 XML 的主题,但我在具体案例中遇到了麻烦。

目前我正在尝试从来自 Steam Web API URL 的 XML 块中提取单个值

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE response>
<response>
  <players>
    <player>
        <steamid>76561197996635228</steamid>
        <communityvisibilitystate>3</communityvisibilitystate>
        <profilestate>1</profilestate>
        <personaname>P337</personaname>
        <lastlogoff>1386990920</lastlogoff>
        <commentpermission>1</commentpermission>
        <profileurl>http://steamcommunity.com/id/P337/</profileurl>
        <avatar>http://media.steampowered.com/steamcommunity/public/images/avatars/43/438f1b6217ee5600772cd1f9d978fbba999d8cc6.jpg</avatar>
        <avatarmedium>http://media.steampowered.com/steamcommunity/public/images/avatars/43/438f1b6217ee5600772cd1f9d978fbba999d8cc6_medium.jpg</avatarmedium>
        <avatarfull>http://media.steampowered.com/steamcommunity/public/images/avatars/43/438f1b6217ee5600772cd1f9d978fbba999d8cc6_full.jpg</avatarfull>
        <personastate>0</personastate>
        <primaryclanid>103582791431212131</primaryclanid>
        <timecreated>1203124452</timecreated>
        <personastateflags>0</personastateflags>
    </player>
  </players>
</response>

我可以使用以下 PHP 代码将所有这些输出到网页(代码来自另一篇文章,非常有帮助

$url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=[STEAMAPIKEY]&steamids=[PROFILEID]&format=xml";
$get = file_get_contents($url);
$xml = simplexml_load_string($get);

header('Content-Type: text/xml');
die($xml->asXML());

但是,当我尝试将 $xml->asXML() 更改为文档中所说的另一个元素时,如下所示:

echo '<p>'.$xml->response->players->player->personastate.'</p>;

我收到一条错误消息,提示没有返回数据。

出于示例的目的,我试图检索元素&lt;personastate&gt;,它指示玩家是否在线。

【问题讨论】:

    标签: php simplexml steam


    【解决方案1】:

    我将您在问题中发布的解决方案提取到此答案中(并修复了几个引用错误)。

    如您所述,请勿在 SimpleXML 语法中使用根元素:

    INCORRECT echo '<p>'.$xml->response->players->player->personastate.'</p>';
    CORRECT   echo '<p>'.$xml->players->player->personastate.'</p>';
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 2014-11-16
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多