public function parse($path)
	{
		libxml_use_internal_errors(true);

		$xml = simplexml_load_file($path, null, LIBXML_NOERROR);

		if ($xml === false)
		{
			$errors      = libxml_get_errors();
			$latestError = array_pop($errors);
			$error       = array(
				'message' => $latestError->message,
				'type'    => $latestError->level,
				'code'    => $latestError->code,
				'file'    => $latestError->file,
				'line'    => $latestError->line,
			);
			throw new ParseException($error);
		}

		$data = new stdClass;
		foreach ($xml->children() as $node)
		{
			$data->{$node['name']} = $this->getValueFromNode($node);
		}
		$data = json_decode(json_encode($data), true);

		return $data;
	}