• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/web/dom/queryengine.php
  • Класс: BitrixMainWebDOMQueryEngine
  • Вызов: QueryEngine::walkInternal
protected function walkInternal(array $filter = null, callable $callback = null, Node $node)
{
	$resultList = array();
	if($node->hasChildNodes())
	{
		foreach($node->getChildNodesArray() as $childNode)
		{
			if($callback)
			{
				$flag = call_user_func_array($callback, array($childNode, $filter));
			}
			elseif($filter)
			{
				$flag = $this->isNodeFiltered($childNode, $filter);
			}
			else
			{
				break;
			}

			if($flag === true)
			{
				// save node to result list
				$resultList[] = $childNode;

				// check limit of results
				if($this->limit !== null)
				{
					--$this->limit;
					if($this->limit <= 0)
					{
						break;
					}
				}

				// check search only in child list
				if(!$this->deep)
				{
					continue;
				}
			}

			$resultList = array_merge(
				$resultList,
				$this->walkInternal($filter, $callback, $childNode, $callback)
			);
		}
	}

	return $resultList;
}