• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/xmlnode.php
  • Класс: specifierCDavXmlNode
  • Вызов: CDavXmlNode::GetPath
public function GetPath($path)
{
	$elements = array();

	if (!preg_match('#(/)?([^/]+)(/?.*)$#', $path, $matches))
	{
		return $elements;
	}

	$searchTagname = $matches[2];
	$searchXmlns = "";
	if (preg_match('/^(.*):([^:]+)$/', $searchTagname, $matches1))
	{
		$searchXmlns = $matches1[1];
		$searchTagname = $matches1[2];
	}

	if ($matches[2] == '*' || mb_strtolower($searchTagname) == mb_strtolower($this->tagname) && (empty($searchXmlns) || mb_strtolower($searchXmlns) == mb_strtolower($this->xmlns)))
	{
		if ($matches[3] == '')
		{
			$elements[] = $this;
		}
		elseif (is_array($this->content))
		{
			foreach ($this->content as $val)
			{
				$elements = array_merge($elements, $val->GetPath($matches[3]));
			}
		}
	}

	if ($matches[1] != '/' && is_array($this->content))
	{
		foreach ($this->content as $key => $val)
		{
			$elements = array_merge($elements, $val->GetPath($path));
		}
	}

	return $elements;
}