QuickBooks/XML/Node.php
protected function _getChildAtHelper($root, $path)
	{
		if (false !== strpos($path, ' ') and false === strpos($path, '/'))
		{
			$path = str_replace(' ', '/', $path);
		}

		$explode = explode('/', $path);
		//$explode = explode(' ', $path);
		$current = array_shift($explode);
		$next = current($explode);

		if ($path == $root->name())
		{
			return $root;
		}
		else if ($current == $root->name())
		{
			$path = implode('/', $explode);

			foreach ($root->children() as $child)
			{
				if ($child->name() == $next)
				{
					return $this->_getChildAtHelper($child, $path);
				}
			}
		}

		return false;
	}
protected function _getChildAtHelper($root, $path)
	{
		if (false !== strpos($path, ' ') and false === strpos($path, '/'))
		{
			$path = str_replace(' ', '/', $path);
		}

		$explode = explode('/', $path);
		//$explode = explode(' ', $path);
		$current = array_shift($explode);
		$next = current($explode);

		if ($path == $root->name())
		{
			return $root;
		}
		else if ($current == $root->name())
		{
			$path = implode('/', $explode);

			foreach ($root->children() as $child)
			{
				if ($child->name() == $next)
				{
					return $this->_getChildAtHelper($child, $path);
				}
			}
		}

		return false;
	}
Recursive helper function - get child at location

@param QuickBooks_XML_Node $root
@param string $path
@return QuickBooks_XML_Node