0

i am trying to filter an element out from an child like this per xml & php

xml=

-<game>   
  <gameName>ValveTestApp202990</gameName>  
  <gameVersion>7</gameVersion>   
 -<availableGameStats>
   -<achievements>
     -<achievement>
        <name>MP_MISC_1</name>
        <defaultvalue>0</defaultvalue>
        <displayName>Willkommen im Club</displayName>
        <hidden>0</hidden>
      </achievement>
     -<achievement>
        <name>MP_MISC_2</name>
        <defaultvalue>0</defaultvalue>
        <displayName>Willkommen im Penthouse</displayName>
        <hidden>0</hidden>
      </achievement>
    </achievements>    
  </availableGameStats> 
 </game>

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);

$joke ="MP_MISC_2";

if ( $xml11->availableGameStats->achievements->achievement->name !=
 $joke ) continue;

know anoyne how i can search for the strings in the elements?

thanks ahead and srry i am just an starter

ProJaCore
  • 42
  • 8

1 Answers1

0

If you want to check and compare the provided needle ($joke), you can just use a simple foreach to check. To compare you can use __toString() or plain simple typecast (string) $value. Consider this example:

// sample file get contents
$contents = '<game>   
  <gameName>ValveTestApp202990</gameName>  
  <gameVersion>7</gameVersion>   
 <availableGameStats>
   <achievements>
     <achievement>
        <name>MP_MISC_1</name>
        <defaultvalue>0</defaultvalue>
        <displayName>Willkommen im Club</displayName>
        <hidden>0</hidden>
      </achievement>
     <achievement>
        <name>MP_MISC_2</name>
        <defaultvalue>0</defaultvalue>
        <displayName>Willkommen im Penthouse</displayName>
        <hidden>0</hidden>
      </achievement>
    </achievements>    
  </availableGameStats> 
 </game>';

$xml = simplexml_load_string($contents);
$joke ="MP_MISC_2";
foreach($xml->availableGameStats->achievements->achievement as $key => $value) {
    if($value->name->__toString() != $joke) {
        echo $value->name->__toString();
    }
}
user1978142
  • 7,946
  • 3
  • 17
  • 20