Bonjour,
Je me heurte � certains probl�mes face � l'utilisation de msxml (a priori dans sa version 2) dans eVC++.
Je veux utiliser le langage XPath dans les fonctions selectSingleNode et selectNodes.
Au d�part je cr�ais un document de type IXMLDocument et le chargement (avec la m�thode load) fonctionnait plutot bien (j'arrivais � r�cup�rer des noeuds... pas d'erreur majeure).
Il semblerait que pour pouvoir utiliser XPath je doive sp�cifier le langage de requ�te utilis�. Pour ce faire je dois cr�er non pas un IXMLDocument mais un IXMLDocument2. Cette fois le chargement me lace une grosse erreur. Sur certains forums on m'a dit que cela pouvait venir du fait que mon fichier XML est mal form�.
Ainsi j'ai voulu faire un try catch sur ma m�thode load. Apr�s avoir r�ussi � activer le handler d'exception (-GX dans les settings du projet...), je ne catch toujours pas l'erreur alors que j'ai mis catch (...)
Je n'y comprends goutte...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 VARIANT vXMLSrc; vXMLSrc.vt = VT_BSTR; vXMLSrc.bstrVal=::SysAllocString(L"\\FichierDonneesCE07.xml"); HRESULT hr = ::CoInitializeEx( NULL , COINIT_MULTITHREADED ); CComPtr<IXMLDOMDocument2> iXMLDoc; CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument2, (void**)&iXMLDoc); CComQIPtr< IObjectSafety, &IID_IObjectSafety>iSafety(iXMLDoc); if (iSafety) { DWORD dwSupported, dwEnabled; iSafety->GetInterfaceSafetyOptions(IID_IXMLDOMDocument2, &dwSupported,&dwEnabled); iSafety->SetInterfaceSafetyOptions(IID_IXMLDOMDocument2, dwSupported,0); } VARIANT_BOOL bSuccess=false; CString a ("1"); AfxMessageBox(a); try { hr=iXMLDoc->load(vXMLSrc,&bSuccess); } catch(...) { CString a ("Erreur catchée"); AfxMessageBox(a); }
Partager