C,C++にてDOMを実装するには?

解決


ユウ  2006-06-08 11:53:57  No: 62099  IP: 192.*.*.*

C,C++にてXMLサーバにアクセスする際、
DOM(Document Object Model)実装が必要と参考書に書いてありました。
DOM実装に関する参考HPがありましたら、おしえてください。

編集 削除
επιστημη  2006-06-08 15:07:55  No: 62100  IP: 192.*.*.*

> DOM実装に関する参考HPがありましたら、おしえてください。

↓参考HPてゆーか、まんまDOM実装。
http://xml.apache.org/xerces-c/

編集 削除
ユウ  2006-06-08 15:48:41  No: 62101  IP: 192.*.*.*

επιστημηさん回答ありがとうございます。

できれば日本語HPで参考になるところありませんでしょうか?

やりたい事はVBで以下の命令と同等の事をしたいのですが・・
VCではどのようにすればよいでしょうか?

VBのソース

DIM AAAxml As Object
DIM bSuccess AS Boolean

Set AAAxml = CreateObject("Microsoft.XMLHTTP")
AAAxml.Open "POST","XMLサーバURL",False
'DOMにロード
Set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.async = "false"
bSuccess = xmldic.Load(AAAxml.responseXML)

よろしくお願いします。

編集 削除
dairygoods  2006-06-08 17:12:51  No: 62102  IP: 192.*.*.*

実装するのではなく、既製品を使うだけですね。

一例:
http://www.utj.co.jp/XML/DEV/dom/dxdom1_1.html
http://www.s34.co.jp/cpptechdoc/article/xml/persist/

編集 削除
ユウ  2006-06-08 20:54:13  No: 62103  IP: 192.*.*.*

dairygoodsさんありがとうございます。
>実装するのではなく、既製品を使うだけですね。
そのとおりです・・・

教えて頂いたサイトを参考に作成しているのですが、
おかしそうなところがありましたら、ご指摘ください。

/*現状ソース*/

#import  <msxml4.dll>
typedef  MSXML2::IXMLDOMNodeListPtr  INodeListPtr;
typedef  MSXML2::IXMLDOMNodePtr  INodePtr;
typedef  MSXML2::IXMLDOMElementPtr  IElementPtr;

HRESULT hr;
MSXML2::IXMLDOMDocument2Ptr pDoc;

// COMライブラリの初期化
CoInitialize(NULL);

//  ドキュメントのインスタンスを作成
hr = pDoc.CreateInstance( __uuidof(MSXML2::DOMDocument40) );
if(FAILED(hr)){
    return false;
}

pDoc->async = VARIANT_FALSE; 

//XMLファイルのロード
hr = pDoc->load("XXX.xml");
if(FAILED(hr)){
    return false;
}

// COMライブラリの終了処理
CoUninitialize();

/*現状ソースここまで*/

前文に抜けがあったので追加いたします。

VBソース
AAAxml.Open "POST","XMLサーバURL",False

//追加
AAAxml.sendRequestHeader"Content-Type","application/x-www-form-urlencoded"
AAAxml.send(~~~~~~~)
//追加end
'DOMにロード

としている部分でXMLサーバにpost命令をしているらしいのですが、
C、C++には上記相当の命令をご存知でしたら教えてください。

よろしくお願いします。

編集 削除
ユウ  2006-06-08 23:29:55  No: 62104  IP: 192.*.*.*

ロードはできました。

επιστημηさん  dairygoodsさん

ご教授ありがとうございました。

編集 削除