儿童跳过到XML文件中的最后一个孩子的Foreach循环

时间:2017-11-15 03:17:54

标签: php xml foreach

好吧,我的脚本应该打开一个XML文件,以递归方式循环遍历所有标签,子项,子项的子项等,随后随地吐出信息。今天我注意到一个有趣的错误,我的foreach循环应该循环通过孩子们直接跳到最后一个孩子,我真的不知道为什么。

function theHunt($node)
{
    $tagName = '';
    print 'I am starting with ' . $node->getName() . ' It should have ' . $node->count() . ' children. The first child should be: ' . $node->children()->getName() . '<br>';

    foreach ($node->children() as $child);
    {
        print $child->getName() . '<br>';
        if (isset($child))
        {
            print 'I found: ' . $child->getName() . ' I\'ll see if it has kids' . '<br>';
            $this->theHunt($child);
        }
        else
        {
            print 'No kids here, I\'m going to stop digging.<br>';
        }
        //Now that I am all the way down or working my way back up. I start gathering my information.
        $tagName = $node -> getName();
        if($this->rootNode->$tagName[0] !== NULL)
        {
            foreach ($this->rootNode->$tagName[0]->attributes() as $a => $b) ;
            {
                //echo $a, '="', $b, "<br>";
            }
        }
        //print_r($node);
        print'<br> I kicked out <br>';

    }
}

真正奇怪的部分是这一行:

print 'I am starting with ' . $node->getName() . ' It should have ' . $node->count() . ' children. The first child should be: ' . $node->children()->getName() . '<br>';

正在输出所有正确的信息,但是当我进入foreach循环时,我跳到最后一个孩子。

2 个答案:

答案 0 :(得分:0)

您的代码处理树结构错误。您应该遵循以下结构:

[HttpPost]
public void GetInfo([FromBody]EmployeeTable data){

}

答案 1 :(得分:-1)

好的,我明白了。真是菜鸟的错误。在我的foreach之后我放了一个分号。拿出来,我跑得很漂亮。