0

私は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;

要素内の文字列を検索する方法を知っていますか?

よろしくお願いします。申し訳ありませんが、私は初心者です

4

1 に答える 1

0

提供された針 ( ) を確認して比較したい場合は$joke、単純な foreach を使用して確認できます。比較するには、__toString()または単純な単純な typecastを使用できます(string) $value。次の例を検討してください。

// 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();
    }
}
于 2014-06-01T13:36:38.553 に答える