MSXML xml.load() bringt Fehlermeldung wenn XML Datei leer



  • Hallo,

    ich bin gerade an einem Programm das XML lesen und Schreiben soll.
    Es funktioniert schon soweit alles, jedoch habe ich ein Problem.

    Wenn die XML-Datei die ich einlese komplett leer ist bekomme ich
    mehrere Debug-Meldungen von Visual Studio gefolgt von einer
    Windows Mobile Fehlermeldung die gwes.exe habe einen Fehler verursacht.

    Meldungen von Visual Studio:

    TLSKERN_NOFAULT set... bypassing kernel debugger.
    RaiseException: Thread=96e8b8c0 Proc=814c7100 'XML_Test.exe'
    AKY=00010001 PC=03f785b4(coredll.dll+0x000185b4) RA=800773f4(NK.EXE+0x000073f4) BVA=00000000 FSR=00000000
    TLSKERN_NOFAULT set... bypassing kernel debugger.

    Die Fehler treten bei folgende Zeile auf:

    LPCTSTR szXMLFile = TEXT("Filepath....");
    CComPtr<IXMLDOMDocument> m_iXMLDoc;
    VARIANT_BOOL bSuccess;
    [b]hr = m_iXMLDoc->load( CComVariant ( szXMLFile ), &bSuccess );[/b]
    

    Kann mir jemand sagen woran das liegen könnte?

    Danke schonmal



  • m_iXMLDoc zeigt auf nirgendwas... was soll da geschehen?
    Simon

    Edit: Hier Doku: http://msdn.microsoft.com/en-us/library/ms756987.aspx



  • Hallo,

    habe die Datentypen nur zur Information gepostet.

    Das DOMDocument ist initialisiert und der komplette Zugriff funktioniert,
    nur sobald ich eine "leere" XML-Datei lade bekomme ich oben beschriebene
    Fehler.

    Hier nochmal ein größerer Codeausschnitt:

    m_iXMLDoc.CoCreateInstance( __uuidof( DOMDocument ) );
    
    	m_iXMLDoc->put_async( VARIANT_FALSE );
    	CComQIPtr<IObjectSafety,&IID_IObjectSafety> iSafety( m_iXMLDoc );
    	if ( iSafety ) 
    	{ 
    		DWORD dwSupported, dwEnabled; 
    		iSafety->GetInterfaceSafetyOptions( IID_IXMLDOMDocument, &dwSupported, &dwEnabled );
    		iSafety->SetInterfaceSafetyOptions( IID_IXMLDOMDocument, dwSupported, 0 );
    	}
    
    	bSuccess=false;
    	// Can load it from a url/filename...
    	hr = m_iXMLDoc->load( CComVariant ( szXMLFile ), &bSuccess );
    

    Kann mir jemand sagen warum das Laden mit load() bei leeren Dateien Fehler verursacht?

    Danke


Anmelden zum Antworten