1

我在显示存储在我的数组中的 XML 值时遇到了一些问题。我成功地遍历了节点,但我试图将数组全部回显。这是我的代码:

<?php  
$other_feed_url = "http://xml.pinnaclesports.com/pinnaclefeed.aspx?sporttype=Football&sportsubtype=NFL";  
$xml2 = simplexml_load_file($other_feed_url);  
$AwayLine[] = (string)$xml2->spread_visiting;  
$HomeLine[] = (string)$xml2->home_visiting;  
$AwayMoneyLine[] = (string)$xml2->moneyline_visiting;  
$HomeMoneyLine[] = (string)$xml2->moneyline_home;  
$AwaySpreadAdjust[] = (string)$xml2->spread_adjust_visiting;  
$HomeSpreadAdjust[] = (string)$xml2->spread_adjust_home;  
$UnderAdjust[] = (string)$xml2->under_adjust;  
$OverAdjust[] = (string)$xml2->over_adjust;  
$TotalPoints[] = (string)$xml2->total_points;  
for($i=0;$i<20; $i++) {  
    foreach ($xml2->events->event as $event) {  
        $Spread = $event->periods->period[0]->spread;   
        $MoneyLine = $event->periods->period[0]->moneyline;  
        $TotalPoints = $event->periods->period[0]->total;      
        $AwayLine[] = $Spread->spread_visiting;   
        $HomeLine[] = $Spread->spread_home;  
        $AwayMoneyLine[] = $MoneyLine->moneyline_visiting;   
        $HomeMoneyLine[] = $MoneyLine->moneyline_home;  
        $UnderAdjust[] = $TotalPoints->under_adjust;   
        $OverAdjust[] = $TotalPoints->over_adjust;  
        $TotalPoints[] = $TotalPoints->total_points;  
    }  
    echo '<br>';  
    echo $AwayLine[$i];  
    echo '<br>';  
    echo $HomeLine[$i];  
    echo '<br>';  
    echo $AwayMoneyLine[$i];   
    echo '<br>';  
    echo $HomeMoneyLine[$i];  
    echo '<br>';  
    echo $TotalPoints[$i];  
}  
?>
4

1 回答 1

1

您正在设置$MoneyLine = $event->periods->period[0]->moneyline;,但您正在加载的 XML 文档中不存在此设置。然后,当您尝试 fetch$AwayMoneyLine[] = $MoneyLine->moneyline_visiting;时,没有结果值。有关您正在解析的文档中的 XML 节点之一的示例,请参见下文:

<event>
    <event_datetimeGMT>2012-11-02 00:25</event_datetimeGMT>
    <gamenumber>272519903</gamenumber>
    <sporttype>Football</sporttype>
    <league>NFL</league>
    <IsLive>No</IsLive>
    <participants>
        <participant>
            <participant_name>Kansas City Chiefs</participant_name>
            <contestantnum>301</contestantnum>
            <rotnum>301</rotnum>
            <visiting_home_draw>Visiting</visiting_home_draw>
        </participant>
        <participant>
            <participant_name>San Diego Chargers</participant_name>
            <contestantnum>302</contestantnum>
            <rotnum>302</rotnum>
            <visiting_home_draw>Home</visiting_home_draw>
        </participant>
    </participants>
    <periods>
        <period>
            <period_number>0</period_number>
            <period_description>Game</period_description>
            <periodcutoff_datetimeGMT>2012-11-02 00:25</periodcutoff_datetimeGMT>
            <period_status>I</period_status>
            <period_update>open</period_update>
            <spread_maximum>10000</spread_maximum>
            <moneyline_maximum>5000</moneyline_maximum>
            <total_maximum>3000</total_maximum>
            <spread>
                <spread_visiting>9.5</spread_visiting>
                <spread_adjust_visiting>-130</spread_adjust_visiting>
                <spread_home>-9.5</spread_home>
                <spread_adjust_home>120</spread_adjust_home>
            </spread>
            <total>
                <total_points>42.5</total_points>
                <over_adjust>-102</over_adjust>
                <under_adjust>-108</under_adjust>
            </total>
        </period>
    </periods>
</event>
于 2012-10-30T03:21:32.817 回答