PHP SimpleXML - 循环并检查元素的名称

时间:2016-11-25 01:42:02

标签: php simplexml

在我的示例中,我在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++;
        }

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

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

1 个答案:

答案 0 :(得分:0)

我是使用children()完成的。

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