你好我将过滤xml元素,并将显示一个具有指定标识的元素,如下所示:
<?php
$url11= 'http://api.steampowered.com/ISteamUserStats/GetSchemaForGame/v0002/?key=XXXXXXXXXXXXXXXXXX&appid=240&l=german&format=xml';
$data11 = file_get_contents($url11);
$xml = simplexml_load_string($data11);
$joke ="WIN_BOMB_PLANT";
foreach($xml->availableGameStats->achievements->achievement as $key => $value) {
if($value->name->__toString() != $joke) {
?>
<img src="<?php echo $value->icon->__toString(); ?>" border="0" height="64" width="64" >
<?php
}
}
?>
这是xml文档:
-<game>
<gameName>ValveTestApp260</gameName>
<gameVersion>181</gameVersion>
-<availableGameStats>
-<achievements>
-<achievement>
<name>WIN_BOMB_PLANT</name>
<displayName>Bombenleger</displayName>
<icon>
http://media.steampowered.com/steamcommunity/public/images/apps/240
/4711014791e4ae29408e8bc2fcae1ab61ca7c189.jpg
</icon>
</achievement>
-<achievement>
<name>BOMB_PLANT_LOW</name>
<displayName>Boomala Boomala</displayName>
<icon>
http://media.steampowered.com/steamcommunity/public/images/apps/240
/5f689c20656716f2a8bf67bd26f3f7846786bca5.jpg
</icon>
</achievement>
<achievement>
-Another things-
</achievement>
</achievements>
</availableGameStats>
</game>
但现在它显示每个元素。像这样的例子: http://i.stack.imgur.com/BagDu.jpg
但我会认为脚本只显示如下指定的那个: http://i.stack.imgur.com/X2Oph.png
可以帮助我吗?谢谢你...因为我的英语不好或英语不好... ...
答案 0 :(得分:0)
您可以使用xpath()
来选择所需的节点,而不是迭代:
$xml = simplexml_load_string($x); // assume XML in $x
$icon = $xml->xpath("//achievement[name='WIN_BOMB_PLANT']/icon")[0];
请注意,对于[0]
末尾的line 2
,您需要PHP >= 5.4
。如果您使用的是旧版本,请更新或执行以下操作:
$icon = $xml->xpath("//achievement[name='WIN_BOMB_PLANT']/icon");
$icon = $icon[0];
必要时将$icon
投射到字符串。
看到它正常工作:https://eval.in/157598