使用PHP在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

我有一个小问题:

我有一个XML文件:

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