[英]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重复自己而不进一步。 我怎么能纠正这个?
谢谢。
由于Option
是User
子级,因此您无法期望$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.