人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【VB6のXML書込みについて質問】
以下のようなコーディングでXMLに対する書込み処理を行ったのですが、
結果が、期待しているものと異なっていました。
期待する結果の表示にするためにはどのようにすればいいのか
教えていただきたく宜しくお願いします。


[作成したコード]

Dim setting1 As MSXML2.IXMLDOMElement
Dim setting2 As MSXML2.IXMLDOMElement

Dim xmlDoc As MSXML2.DOMDocument
Dim currentNode As IXMLDOMNode

xmlDoc.Load("ファイルパス")

currentNode =xmlDoc.SelectSingleNode("アイテム追加先")
Set setting1 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム
Set setting2 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム
currentNode.appendChild setting1 '一回目
currentNode.appendChild setting2 '二回目

[実行結果]

<ITEM></ITEM><ITEM></ITEM>

[期待する内容]

<ITEM></ITEM>
<ITEM></ITEM>

●質問者: harunoharuno
●カテゴリ:コンピュータ
✍キーワード:AS SET vb6 XML アイテム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ko8820
●25ポイント

Set setting1 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム

currentNode.appendChild setting1 '一回目

Set setting2 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム

currentNode.appendChild setting2 '二回目

このように書いた場合、どうなりますか?

http://q.hatena.ne.jp/answer

◎質問者からの返答

回答ありがとうございます。

残念ながら現状の出力と変わりませんでした。


2 ● a-kuma3
●250ポイント ベストアンサー

「期待する内容」というのは、text プロパティで取得できる文字のことですか?

実行結果と、期待する内容と言うのが、XML としては 違うもの だということは、理解できますか?

Dim crlf As MSXML2.IXMLDOMText'★ここ
 ...
currentNode =xmlDoc.SelectSingleNode("アイテム追加先")
Set setting1 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム
Set setting2 =xmlDoc.createNode(MSXML2.NODE_ELEMENT,"ITEM")'新規アイテム
Set crlf = xmlDoc.createTextNode(vbCrLf)'★ここ
currentNode.appendChild setting1 '一回目
currentNode.appendChild crlf'★ここ
currentNode.appendChild setting2 '二回目

多分、こんな感じでいけると思います。


http://msdn.microsoft.com/en-us/library/ms764643.aspx

◎質問者からの返答

回答ありがとうございます。

”実行結果”と”期待する内容”の違いは、表現の違いで意味は同一と考えていました(--;)。

後で追記コメントします。

期待通りの実行結果を得ることができました。回答ありがとうございます。

しかし、残念ながらXMLとして違うものの・・・という示唆については良くわかりませんでした。

質問終了まで時間がないので終了します。


3 ● khazad-Lefty
●25ポイント

えっと。私の知る限りでは無理です。

正確に言うと、MSXMLのDOMから出力されるXML文は改行などの整形が行われません。

(私の記憶の限りでは…MSXML3までならかなり調べたので…それ以降で対応した可能性もなくはないですが。)

.Net系のXMLクラスだと整形が行われるのですが…。

どうしてもというなら、出力されたXMLをテキスト処理するなり、SAXパーサーを通すなりして、

自力で成形するしかないかなと…。

ただ、SAXも、"msxml sax vb6"あたりで検索しても、「これ」というのが出てこないんですよね…。

http://msdn.microsoft.com/ja-jp/library/ms994347.aspx

◎質問者からの返答

回答ありがとうございます。

二番目に回答したa-kuma3のほうほうで実装できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ