php纯单纯性 - 循环和检查元素的名称



在我的示例中,我在XML文件中产生了生产。当我循环浏览它时,我需要检查第一个顶级元素的名称是确定该如何处理的名称。

这是我的代码和伪代码:

        $xml = simplexml_load_file($xmlfile);
        $produce = array();
        $i = 0;
        foreach ($xml as $prod) {
            //this works if I know there is fruit
            $nm = $xml->fruit->name; //apple
            $produce[i]['name'] = $nm
            //what I want is this
            if (the first level element name is 'fruit') then
               do something fruity like $produce[i]['type'] = 1
            else if (the first level element name is 'vegetable' then
               do something else like $produce[i]['type'] = 2
        $counter++;
        }

我们都在想"为什么水果/蔬菜不是元素的属性?" - 我无法控制输入。

如何测试第一个元素的名称?

我使用 children()

foreach ($xml->children() as $kid) {
    if ($kid->getName() == 'fruit') {
        //do something fruity
    }
}

最新更新