Php 从标记中的特定结果获取foreach xml

Php 从标记中的特定结果获取foreach xml,php,xml,foreach,Php,Xml,Foreach,我目前正在使用以下代码 foreach ($xml->sport[0]->event[1] as $gameinfo): 这是英超联赛。是否有一种方法可以从id=3的数据中提取数据,而不是使用[1]方法 XML是: <sports file_date="2012-11-16T14:30:27.853"> <sport name="Football" id="1"> <event name="World Cup" id="1"></e

我目前正在使用以下代码

foreach ($xml->sport[0]->event[1] as $gameinfo):
这是英超联赛。是否有一种方法可以从id=3的数据中提取数据,而不是使用[1]方法

XML是:

<sports file_date="2012-11-16T14:30:27.853">
<sport name="Football" id="1">
    <event name="World Cup" id="1"></event>
    <event name="Eng. Premier League" id="3"></event>
    <event name="French Ligue 1" id="4"></event>
<sport>

这样做:

<?php

$string = '<sports file_date="2012-11-16T14:30:27.853">
<sport name="Football" id="1">
    <event name="World Cup" id="1"></event>
    <event name="Eng. Premier League" id="3"></event>
    <event name="French Ligue 1" id="4"></event>
</sport>
</sports>';

$xml = simplexml_load_string( $string );

foreach( $xml->sport->children() as $gameinfo )
{
    if( $gameinfo->attributes()->id == 3 )
    {
        // do your thing
    }
}

?>


您是否尝试访问
attributes()
其中
id=3
?我对XML不太熟悉,如何在foreach语句中访问它?完整的dom/xpath<代码>//事件[@id=3]?这是我的代码,但它没有生成任何结果?打开错误报告,我使用您的代码实现了这一点:
注意:第7行尝试获取test.php中非对象的属性
和逻辑
致命错误:第7行对test.php中非对象调用成员函数event()