void InfoDTVFileProcesser::ProcessInfoDTVIBLObject(InfoDTVObjectPtr aObject, rapidxml::xml_document<> &aXmlDocument)
{

	aXmlDocument.clear();

	//						boost::shared_array<char> Content(new char[aObject->IBLFileContent.size() + 1]);
	boost::shared_ptr<char> Content((char *)std::malloc(aObject->IBLFileContent.size() + 1),&free);//new char[aObject->IBLFileContent.size() + 1]);
	strcpy(Content.get(), aObject->IBLFileContent.c_str());
	//aXmlDocument->Parse(aObject->IBLFileContent.c_str());
	aXmlDocument.parse<0> (Content.get());

	rapidxml::xml_node<> *node = aXmlDocument.first_node();

	while (node)
	{
		//								cout << "Name of  node is: " << node->name() << "\n";
		//								cout << "Node  has value " << node->value() << "\n";
		string TagName = node->name();

		TagName = toUpper(TagName);
		if (TagName == "IMG")
		{
			IBLProcessImageLink(aObject, node, 0);
			IBLProcessAction(aObject, node, "laction", "lasrc");
			IBLProcessAction(aObject, node, "faction", "fasrc");
			IBLProcessAction(aObject, node, "action", "asrc");
			//								attr = node->first_attribute("laction", 7, false);
			//								attr = node->first_attribute("lasrc", 5, false);
			//								attr = node->first_attribute("faction", 7, false);
			//								attr = node->first_attribute("fasrc", 5, false);
			//								for (xml_attribute<> *attr = node->first_attribute(); attr; attr
			//								        = attr->next_attribute())
			//								{
			//								    cout << "Node has attribute " << attr->name() << " ";
			//								    cout << "with value " << attr->value() << "\n";
			//								}

		}
		else if (TagName == "STBAD")
		{
			IBLProcessImageLink(aObject, node, 0);
		}
		else if (TagName == "TEXTLINK")
		{
			IBLProcessAction(aObject, node, "laction", "lasrc");
			IBLProcessAction(aObject, node, "faction", "fasrc");
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "REGION")
		{
			IBLProcessImageLink(aObject, node, 1);
		}
		else if (TagName == "GROUPACTION")
		{
			//xml_attribute<> *attr = node->first_attribute("bkimg", 6, false);
			string Value = node->value();
			IBLProcessGroupAction(aObject, Value);
		}
		else if(TagName=="KEYACTION")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "FORCEACTION")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "CARDID")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "BOUQUETID")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "STBID")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "NUMINPUT")
		{
			//								string Value = node->value();
			//								IBLProcessGroupAction(aObject, Value);
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		else if (TagName == "VCHANNEL")
		{
			string Value = node->value();
			IBLProcessGroupAction(aObject, Value);
		}
		else if (TagName == "CODEINPUT")
		{
			IBLProcessAction(aObject, node, "laction", "lasrc");
			IBLProcessAction(aObject, node, "faction", "fasrc");
			string Value = node->value();
			IBLProcessGroupAction(aObject, Value);
		}
		else if (TagName == "SLOT")
		{
			string Value = node->value();
			IBLProcessGroupAction(aObject, Value);
		}
		else if (TagName == "LINKRESOURCEINFO")
		{
			IBLProcessLinkResourceInfo(aObject,node);
			//								string Value = node->value();
			//								IBLProcessGroupAction(Value);
		}
		else if(TagName=="SELECTFILE")
		{
			IBLProcessAction(aObject, node, "action", "asrc");
		}
		node = node->next_sibling();
	}

}