繁体   English   中英

PHP不会继续使用XML中的foreach在第二级循环

[英]PHP doesn't continue looping on second level with foreach in XML

XML代码(FileZilla Server.xml):

<FileZillaServer>
    <Users>
        <User Name="Bill">
            <Option Name="Pass">window</Option>
        </User>
        <User Name="Paul">
            <Option Name="Pass">apple</Option>
        </User>
    </Users>
</FileZillaServer>

PHP代码:

$filezilla = 'FileZilla Server.xml';
$xml = simplexml_load_file($filezilla);

foreach ($xml->Users->User as $user) {
    echo "<strong>".$user['Name']."</strong><br />";
        foreach ($xml->Users->User->Option as $option) {
            if ($option['Name'] == "Pass") {
                echo $option."<br />";
            }
        }
    echo "<br />";
}

输出是:

Bill
window

Paul
window

输出应该是:

Bill
window

Paul
apple

看起来,内在的foreach重复自己而不进一步。 我怎么能纠正这个?

谢谢。

由于OptionUser子级,因此您无法期望$xml->Users->User->Option从当前用户节点开始。

您可以为当前$user引用Option ,如下所示:

foreach ($xml->Users->User as $user) {
    echo "<strong>".$user['Name']."</strong><br />";
        foreach ($user->Option as $option) {
            if ($option['Name'] == "Pass") {
                echo $option."<br />";
            }
        }
    echo "<br />";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM