使用PHP在XML文件中搜索特定值
我有一个小问题: 我有一个XML文件:使用PHP在XML文件中搜索特定值,php,arrays,xml,xpath,Php,Arrays,Xml,Xpath,我有一个小问题: 我有一个XML文件: <response> <game_count>768</game_count> <games> <message> <appid>730</appid> <playtime_forever>549</playtime_forever> </messa
<response>
<game_count>768</game_count>
<games>
<message>
<appid>730</appid>
<playtime_forever>549</playtime_forever>
</message>
<message>
<appid>1300</appid>
<playtime_forever>0</playtime_forever>
</message>
<message>
<appid>1309</appid>
....
我的结果应该是730549
作为simplexmlement
如果需要任何代码,我将发布它。使用以下方法:
$game = new \SimpleXMLElement($account_game_data);
$res = $game->xpath('games/message[appid="730"]');
print_r($res[0]->asXML());
输出:
<message>
<appid>730</appid>
<playtime_forever>549</playtime_forever>
</message>
730
549
message[appid=“730”]
-将包含子appid
的message
元素与值730匹配,在最终结果中,也会捕获兄弟标记,如果是这样的话?@RomanPerekhres它工作得非常好。至少我有一个错误,与你的代码无关。它导致游戏
-var为空。感谢您的帮助,而不是使用选择父级。
,您可以将路径的结尾放在谓词中:games/message[appid=“730”]
。您甚至可以选择匹配的第一条“消息”的子项:games/message[appid=“730”][1]/*
(然后您必须循环它们以使用simplexmlement::asXML()
)奇怪的是,我没有这个问题:(可能需要注意我使用的引号)。您需要删除谓词前的斜杠。@casimirithippolyte,今天(GMT+02:00,深夜)我已经够了。你的建议是正确的。我已经更新了你的表情。谢谢
<message>
<appid>730</appid>
<playtime_forever>549</playtime_forever>
</message>