MSXML使ってみた
現在XMLの勉強中。
MSXMLを使ってXMLの内容を読み込んで表示するだけのサンプルを作ってみました。
なお、このソースコードの利用は自己責任でお願いします。
// MSXMLライブラリのインポート。 #import <msxml6.dll> int main() { // 内容を読み込んでコンソールに表示するプログラム // COMの初期化 if ( FAILED(CoInitialize(NULL)) ) { return -1; } VARIANT_BOOL fSuccess; MSXML2::IXMLDOMDocument2Ptr pDoc; pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument60) ); pDoc->put_async( VARIANT_FALSE ); // 同期読み込みに設定 pDoc->put_validateOnParse( VARIANT_FALSE ); // 妥当性確認しない fSuccess = pDoc->load( _variant_t( "sample.xml" )); if ( fSuccess != VARIANT_TRUE ) { pDoc.Release(); CoUninitialize(); return -1; } MSXML2::IXMLDOMElementPtr pRoot; char szText[4096]; bstr_t bstrWork; // BSTRはCOMで利用される一般的な文字列。そのスマートポインタがbstr_t。 pDoc->get_documentElement( &pRoot ); // XMLドキュメントツリーのルートを取得 pRoot->get_text( &bstrWork.GetBSTR() ); // 子ノードの内容をまとめた文字列を取得 sprintf_s(szText, 4096, "%s", (LPCSTR)bstrWork); // bstr_tをcharに変換 printf( "%s", szText ); // 後始末 pRoot.Release(); pDoc.Release(); // COMの後始末 CoUninitialize(); return 0; }