-5

私はxml経由でsteamからphp経由でユーザーからアーカイブリストを取得しようとしています。

http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid=212910&key=xxxxx&steamid=xxxxx&l=ドイツ語&format=xml

xml=

-<playerstats>
 <success>true</success>
  <steamID>76561198070477917</steamID>
  <gameName>Call of Duty: Black Ops II - Zombies</gameName>
 -<achievements>
   -<achievement>
      <apiname>ZM_TRANSIT_SIDEQUEST</apiname>
      <achieved>1</achieved>
      <name>Der Turm von Gebrabbel</name>
      <description>Hören Sie in TranZit auf die Stimmen.</description>
    </achievement>
   -<achievement>
      <apiname>ZM_DONT_FIRE_UNTIL_YOU_SEE</apiname>
      <achieved>0</achieved>
      <name>Erst bei Sichtkontakt feuern</name>
      <description>Öffnen Sie in TranZit sämtliche Türen, ohne in Brand gesteckt zu werden.</description>
    </achievement>

「1」で「達成」という値を持つ要素のみをリストしようとしています。私はすべてに成功しましたが、今は達成された 1 で特別な要素だけを取得しようとしています--

PHP=

    $url11= 'http://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v0001/?appid=' . $dasgame . '&key=' . $steam_api . '&steamid=' . $username . '&l=german&format=xml';
    $data11 = file_get_contents($url11);
    $xml11 = simplexml_load_string($data11);
    $daslade = $xml11->success;
    $daswert = "true";
    if($daslade == $daswert) { 

    foreach ($xml11->achievements->children() as $items){

    $dasladen = $items->apiname;
    print $xml8->availableGameStats->achievements->achievement->$dasladen;                      
    //print htmlentities($items->name);print "--->";
    print htmlentities($items->description);print "</br>"; };
 } else { 
print "Für dieses Spiel sind keine Errungenschaften vorhanden."; }
 };

ご不明な点がございましたら、お気軽にお問い合わせください。

4

1 に答える 1

0

achievedの値を持つ要素を持たないすべての要素をスキップする1場合は、ステートメントを使用しcontinueて残りの処理をスキップし、リスト内の次の項目に移動できます。

foreach ( $xml11->achievements->children() as $items ){
    if ( $items->achieved != 1 ) continue;
    // ... rest of your code
}
于 2014-05-31T20:07:33.473 に答える