Esempio n. 1
0
void
ZXmlParser::ParseObjects( IXMLDOMNodePtr pObject )
{
   // Child node
   IXMLDOMNodePtr pChild;

   // Grab Informations from the pObject node
   GrabNodeInformation( pObject );

   // Update "m_CurrentNode"
   m_CurrentNode = pObject;

   // Call User Parse Handling for let him what he want.
   ParseXML_Document( );

   if ( IsMSXML_Node( pObject ) != NODE_ELEMENT )
     return;

   // add the ChainTag
   ChainTagAdd( m_Tag );

   for ( pChild = pObject->firstChild;  NULL != pChild;  pChild = pChild->nextSibling )
   {
      // Parse Child nodes
      ParseObjects( pChild );
   }

   // Remove Current Tag from ChainTag
   ChainTagRemove( 1 );
}
Esempio n. 2
0
BOOL CVCAMetaParserIXML::ParseMetaData( unsigned char *pMetadata, int nLength )
{
	pMetadata[nLength] = '\0';
	m_pDOMDoc = ixmlParseBuffer((char*)pMetadata);
//	puts(ixmlPrintDocument(m_pDOMDoc));
	if(m_pDOMDoc) {
		ParseHeader();
		ParseStab();
		ParseObjects();
		ParseEvents();
		ParseCounts();
		
		ParseBlobsImp(_XML_TAMPERMAP, &m_TamperInfo);
		ParseBlobsImp(_XML_SCENECHANGEMAP, &m_SceneChangeInfo);
		ParseBlobsImp(_XML_BLOBMAP, &m_BlobMap);
		ParseBlobsImp(_XML_STATBLOBMAP, &m_StationaryMap);
		ParseBlobsImp(_XML_SMOKEMAP,&m_SmokeMap);
		ParseBlobsImp(_XML_FIREMAP,&m_FireMap);

		ParseCE();

		ixmlDocument_free(m_pDOMDoc);
	} else {
		printf("!!! Parsing Error\n");
	}

	return TRUE;
}
Esempio n. 3
0
void
ZXmlParser::LoadXML_FromBuffer( LPCTSTR source )
{
   // Reset the document
   ResetXML_Document( );

   // Load from Buffer
   m_plDomDocument->loadXML( source );
   m_pDocRoot = m_plDomDocument->documentElement;

   // Start the Parsing
   ParseObjects( m_plDomDocument );

   // Move to the root node
   GoToRoot( );
}
Esempio n. 4
0
void VdkPanel::Create(wxXmlNode *node) {
    Create(m_Window, GetXrcName(node), GetXrcRect(node));

    // VdkTab 附加的 VdkPanel 不需要提供 <rect> 结点,
    // 因此 VdkPanel 在初始化时 m_Rect 是空的
    if (m_Rect.IsEmpty()) {
        m_Rect = m_parent->GetRect();
        m_Rect.x = m_Rect.y = 0;
    }

    ParseObjects(VdkCtrlParserInfo().
                 window(m_Window).
                 node(node).
                 parent(this));

    m_gbi = GetXrcGradientBgInfo(node);
    m_bi = GetXrcBgInfo(node);
    m_align = GetXrcAlign(node);
}
Esempio n. 5
0
bool
ZXmlParser::LoadXML_Document( LPCTSTR strFileName )
{
   m_LastError = m_ok;

   // Reset Document
   ResetXML_Document( );

   // Convert xml file name string to something COM can handle (BSTR)
   CString csFileName = strFileName;
   _bstr_t bstrFileName;
   bstrFileName = csFileName.AllocSysString( );

   // Call the IXMLDOMDocumentPtr's load function to load the XML document
   variant_t vResult;
   vResult = m_plDomDocument->load( bstrFileName );
   if ( ((bool) vResult) == TRUE ) // success!
   {
      // Now that the document is loaded, we need to initialize the root pointer
      m_pDocRoot = m_plDomDocument->documentElement;

      // Now we can Parse this document !!
      ParseObjects( m_plDomDocument );

      GoToRoot( );

      return( true );
   }
   else
   {
      // XML document is not loaded, return error
      m_LastError = "XML Document FAILED to load: ";
      m_LastError += strFileName;
      return( false );
   }
}
Esempio n. 6
0
BOOL CVCAMetaParserMSXML::ParseMetaData( unsigned char *pMetadata, int nLength )
{
	CComBSTR sz( (char *)pMetadata );
	VARIANT_BOOL vb;
	USES_CONVERSION;

	pMetadata[nLength] = '\0';

	BSTR bstr = SysAllocString( A2W( (char *)pMetadata ) );

//	sz = CComBSTR("<?xml version=\"1.0\"?>\n<vca>\n <vca_hdr>\n  <frame_id>10</frame_id>\n </vca_hdr>\n</vca>\n");

//	TRACE( (char *)pMetadata );

	vb = m_pDOMDoc->loadXML( bstr);

//	FILE *pFile;
//	pFile = fopen( "C:\\vtmeta.txt", "a" );
//	fwrite( pMetadata, strlen( (char *)pMetadata ), 1, pFile );
//	fclose( pFile );

	if( VARIANT_TRUE == vb )
	{
		// Find the header
		ParseHeader();
		ParseStab();
		ParseObjects();
		ParseEvents();
		ParseCounts();
		ParseBlobsImp(_XML_TAMPERMAP, &m_TamperInfo);
		ParseBlobsImp(_XML_SCENECHANGEMAP, &m_SceneChangeInfo);
		ParseBlobsImp(_XML_BLOBMAP, &m_BlobMap);
		ParseBlobsImp(_XML_STATBLOBMAP, &m_StationaryMap);
		ParseBlobsImp(_XML_SMOKEMAP,&m_SmokeMap);
		ParseBlobsImp(_XML_FIREMAP,&m_FireMap);
		
		ParseCE();
	}
	else
	{
		// Loading the doc failed, find out why...
		MSXML2::IXMLDOMParseErrorPtr pErr = m_pDOMDoc->parseError;

		CString strLine, sResult;
		strLine.Format(_T(" ( line %u, column %u )"), pErr->Getline(), pErr->Getlinepos());
		// Return validation results in message to the user.
		if (pErr->errorCode != S_OK)
		{
			sResult = CString("Validation failed on ") +
			 CString ("\n=====================") +
			 CString("\nReason: ") + CString( (char*)(pErr->Getreason())) +
			 CString("\nSource: ") + CString( (char*)(pErr->GetsrcText())) +
			 strLine + CString("\n");

			ATLTRACE(sResult);

//			AfxMessageBox( (char *)pMetadata );


		}
	}

//	memset( pMetadata, NULL, 2048 );
	SysFreeString( bstr );

	return TRUE;
}