XMLファイルへの要素の追加 – プログラミング – Home

XMLファイルへの要素の追加
 
通知
すべてクリア

XMLファイルへの要素の追加


ジジ
 ジジ
(@ジジ)
ゲスト
結合: 18年前
投稿: 1
Topic starter  

現在既存のXMLファイルに新しく要素を追加するプログラムを作っています。
コンパイルは通り、実行すると読み込んだファイルをそのまま出力してしまっています。
既存のファイルに追加するのではなく、新しいXMLファイルに要素を
出力することはできました。
環境は VB.net 2005、非MFCで、現在のコードは以下のものです。

// ドキュメントのインスタンスを作成
MSXML2::IXMLDOMDocumentPtr pDoc;
HRESULT hr = pDoc.CreateInstance(MSXML2::CLSID_DOMDocument);

pDoc->put_async(VARIANT_FALSE);
VARIANT_BOOL f;
hr = pDoc->load(_variant_t(L./data.xml), &f);

// testタグ
IXMLDOMElementPtr pTest;
IXMLDOMTextPtr pText;
pDoc->createElement( _T(main), &pTest );
pDoc->createTextNode( _T(test), &pText );
pTest->appendChild( pText, NULL );

// ルートタグ
IXMLDOMElement *pRoot;
pDoc->createElement( _T(root), &pRoot );
pRoot->appendChild( pTest, NULL );
pDoc->appendChild( pRoot, NULL );

// セーブ
pDoc->put_async(VARIANT_FALSE);
hr = pDoc->save(_variant_t(L./data.xml));

エラー処理は省略しています。
新規XMLファイルではなく既存のファイルに要素を追加するにはどのように
したらよいのでしょうか?


引用解決済
トピックタグ
いろは
 いろは
(@いろは)
ゲスト
結合: 21年前
投稿: 43
 

もともとあるファイルに要素を追加したいということですよね?

試してないので、当たりか分かりませんが、

> pDoc->createElement( _T(root), &pRoot );

新しくルートノードを作成して、そこに要素を追加してるように見えるのですけど。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

気になったのは、Load以降、Save以外の関数コールに結果判定が
全く無いと言う部分です。
一つ一つの処理がきちんとうまく行っているのかを確認するのが
先だと思います。
サンプルソースだとこの辺のエラー処理が省略されている場合が
あるので、サンプルに無くてもステータスを返す関数のステータス
チェックは入れるべきです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました