我在 XML 中有一个类别树,例如
<cat name='cat_1' id='1'>
<cat name='cat_2' id='2'>
<cat name='cat_3' id='3'>
</cat>
</cat>
<cat name='cat_4' id='4'>
<cat name='cat_5' id='5'>
<cat name='cat_6' id='6'>
<cat name='cat_7' id='7'>
</cat>
</cat>
</cat>
</cat>
</cat>
现在我想实现代码,以便我可以遍历这棵树并按名称查找类别 ID,即如果输入是 cat_6,则结果应该是 6;
我做了什么
$xmlCatTree // 是我的简单 xml 对象
class MyClass{
public function traverseForId($cat_name , $xmlCatTree )
{
if($xmlCatTree->attributes()->name == $cate_name)
{
return $xmlCatTree->attributes()->id;
}
if(count($item->children())>0){
foreach($item->children() as $child)
{
return $this->traverseForId($cat_name,$child);
} }
}
}
它适用于单个分支,即 cat_2 的子节点将具有正确的结果,但如果我搜索 cat_7 则不会返回任何内容。我的事情是由于分支递归而发生的。我想知道如何应对。