掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSXMLでの新規作成時、XMLファイルに改行コードは入れることは可能ですか。 (ID:120973)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
# MSXML関係は、最近使っていないので忘れ気味……。 > MSXMLでの新規作成時、XMLファイルに改行コードは入れることは可能ですか。 単純に改行を入れるだけなら、 Set Root = DomDoc.createElement("Root") Root.text = vbNewLine だとか、あるいは、子ノードの前後に改行を加えるために、 Call Root.appendChild(domDoc.createTextNode(vbNewLine)) Call Root.appendChild(domDoc.createElement("Child")) Call Root.appendChild(domDoc.createTextNode(vbNewLine)) などといった処理を行うことで実現できます。 ただし、XML的に言えば、 <a><b /></a> と、 <a> <b /> </a> は、別の構造を示しているという点には気をつけてください。 前者は、a要素ノードの中身はb要素ノードだけですが、 後者のa要素のノードの中身は、テキストノード(改行+空白)、 b要素ノード、テキストノード(改行)の3つが存在することになります。 > '' XML修飾文?生成 XML宣言(XML Declaration)ですね。 http://www.atmarkit.co.jp/aig/01xml/declaration.html > ・・・(中略)・・・ 省略するのは構いませんが、せめて、残ったコードだけを貼り付けたときに、 ある程度動作するようなコードにしていただけるとありがたいです。(^^; 少なくとも、提示されたコードでは > 2行目:<House Address="abc" Name="123"><Member Name ="xxx"/></House> という結果になるとも思えませんし。 > 書込み後のファイルは綺麗にネストされていて、タブも > 自動で入っていたみたいです。 DOMDocument の 『preserveWhiteSpace プロパティが False の状態』で loadメソッド(≠loadXMLメソッド)を使う事で、ホワイトスペースのみの テキストノードがノードのインデントとして整形されて読み込まれますね。 なお、loadメソッドには、ファイル名("C:\SAMPLE.XML")を渡すことも できますし、他のストリームを渡すことも可能です。 Set domDoc2 = New MSXML2.DOMDocument50 domDoc2.preserveWhiteSpace = False domDoc2.async = False domDoc2.load domDoc Debug.Print domDoc2.xml
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.