【问题标题】:XML/php foreach loop not looping all dataXML/php foreach 循环不循环所有数据
【发布时间】:2011-06-01 09:22:48
【问题描述】:

看来我的 foreach 循环次数正确。然而,它只是用第一个循环中的内容填充变量。

我尝试了两种方法。但首先这是 XML 提要的 url http://wowfeeds.wipeitau.com/GuildActivity.php?location=EU&rn=shadowsong&gn=antheas&output=XML&callback=?这样你就可以看到结构了。

php codee issss

function GetAchievements(){
$achurl = "http://wowfeeds.wipeitau.com/GuildActivity.php?location=EU&rn=shadowsong&gn=antheas&limit=100&output=XML&callback=?"; 
$achxml = new SimpleXMLElement($achurl);
// Achievements
foreach ($achxml->ACTIVITYLIST->ACTIVITYITEM as $ach) {
$name = $ach['NAME'];
echo $name;
//$Achievments = "<p><img src='$achimg' /> <span class='red'>$achname</span> $achtext <span class='red'>$achobj</span></p>";
//echo $Achievments;
}

}

这似乎只是返回一个空白。

但是,如果我将代码 @ $name = $ach['NAME'] 更改为 = $name =

    function GetAchievements(){
    $achurl = "http://wowfeeds.wipeitau.com/GuildActivity.php?location=EU&rn=shadowsong&gn=antheas&limit=100&output=XML&callback=?"; 
    $achxml = new SimpleXMLElement($achurl);
    // Achievements
    foreach ($achxml->ACTIVITYLIST->ACTIVITYITEM as $ach) {
    $name = $achxml->ACTIVITYLIST->ACTIVITYITEM->NAME;
    echo $name;
    //$Achievments = "<p><img src='$achimg' /> <span class='red'>$achname</span> $achtext <span class='red'>$achobj</span></p>";
    //echo $Achievments;
    }
}

然后它只是重复第一个条目的次数与条目相同。

EG。 姓名。 姓名。 姓名。 这已经让我发疯了 2 个小时。请帮忙:(

【问题讨论】:

    标签: php xml loops foreach


    【解决方案1】:

    simplexml 对象不是数组,你可能需要这样考虑

    $url    = 'http://wowfeeds.wipeitau.com/GuildActivity.php?'.
              'location=EU&rn=shadowsong&gn=antheas&output=XML&callback=?';
    $achxml = simplexml_load_file($url);
    foreach ($achxml->ACTIVITYLIST->ACTIVITYITEM as $ach)
    {
      $name = (string) $ach->NAME;
      echo $name, "\n";
    }
    

    输出:

    伊克斯 阿兹瑞尔卡 布雷希诺 鲁格瓦尔 布罗米斯 齐尼 菱电 阿什琳 斯纳皮达格 弗洛克莱 弗洛克莱 七重 阿什琳 去骨 中风 弗洛克莱 沃尔金 布罗米斯 翻新 齐尼 弗洛克莱 弗洛克莱 斯特罗米奥纳 托尔班 伊克斯

    【讨论】:

    • 即使我只是尝试回显/打印出 $ach->NAME 或 $ach['NAME'];尽管如此,它仍然给了我相同的第一个结果的无限循环。
    • 啊,好吧,这似乎在做这项工作,非常感谢 v,你能向我解释一下我到底做错了什么以及你是如何解决它的吗?谢谢:)
    • @Owen Melbourne - 函数返回的simplexml对象不仅仅是一个关联数组,而是一个simplexmlelement对象的集合。你的第一个例子很接近,除了你不应该使用关联数组来查找simplexmlelement对象,并且new SimpleXMLElement的使用不是很准确,可能是原始xml格式问题引起的
    猜你喜欢
    • 1970-01-01
    • 2016-09-26
    • 2012-07-19
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2014-01-26
    相关资源
    最近更新 更多