• ベストアンサー

VB2010のXmlDocumentでのsave

VB2010でXmlDocumentのloadでxmlファイルを読み出してsaveで書き出します。 このとき、元のファイルが <a><b></b></a> となっていた場合、これをloadしてsaveすると <a>  <b>  </b> </a> といったようにタグごとに改行とインデントが挿入されて構造が変わってしまいます。 これを防ぐ方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

読み込んだ改行やインデントを保持したいのであれば XmlDocument.PreserveWhitespace 出力時に改行やインデントをしたくないのであれば XmlWriterSettings.Indent XmlWriterSettings.NewLineChars あたり

msx68000
質問者

お礼

できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

改行とインデントが入っていても XML 文書的には問題ないと思いますがね。 気にしたことも試したこともないので無責任ですが、過去質問のこれは参考になりますか? http://okwave.jp/qa/q3825244.html

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • XMLDocumentのLoadとSave

    VB2005で開発しています。 XMLは初めてです。 お役所への申請をXMLファイルで行う必要があるため、そのための処理を作成しようとしています。 ・あらかじめお役所が用意したXMLファイルに必要データを挿入し、ファイルを上書き保存しようと思っています。 ・申請自体もお役所の用意したソフトを使用して行います。 いろんなデータを挿入する予定なのですが、そもそも該当のXMLファイルを下記のように開いて保存するだけで、お役所側のソフトからXMLファイルを開けなくなってしまいます。 (正常なXMLファイルではありません。と怒られます。)   'ファイル読み込み   Dim doc As New XmlDocument()   doc.Load(XMLFilePath)      '変更保存   doc.Save(XMLFilePath) たったこれだけの処理でXMLファイルにどのような変化が生じているのでしょうか?? ちなみにDOMを使用してデータの操作をすることは普通にできます。結果は同じですが・・・。 そもそも開いて閉じただけでどうしてこんなことになるのでしょう(泣) これって当たり前のことなのでしょうか? 夜通し考えてもわからないので質問させていただきます。 よろしければご教授ください。よろしくお願いします。

    • ベストアンサー
    • XML
  • VB6.0でDOMを使用してXMLを編集したい

    VB6.0でDOMを使用して下記XMLを読込んで<著者 id="1234567">のidの内容を「1234567」→「9999999」に変更したいのですがどのようにしたらよいのかわからなくて困っています。 よろしくお願いします。 【SAMPLE.XML】 <?xml version='1.0' encoding="UTF-8" ?> <書籍情報> <著者 ="1234567"> <名前>磯野カツオ</名前> <性別>男性</性別> </著者> </書籍情報> 【VB6.0】 Dim xmlDocument As New MSXML2.DOMDocument If Not xmlDocument.Load("SAMPLE.XML") Then   MsgBox "XML Read Error!!!"   Exit Function End If '************************************************ 'どのようにコーディングしたらいいのでしょうか? '************************************************ Call xmlDocument.Save("SAMPLE01.XML")

  • VB6.0でDOMを使用してノードを削除したい

    VB6.0でDOMを使用して下記のSAMPLE.xmlより編集者以下のノードを削除してSAMPLE01.xmlとして保存したいのですがやり方がわかりません。 よろしくお願いします。 【SAMPLE.xml】 <?xml version='1.0' encoding="UTF-8" ?> <書籍情報>  <著者 id="00001">   <名前>磯野カツオ</名前>   <性別>男性</性別>  </著者>  <編集者 id="10001">   <名前>磯野波平</名前>   <性別>男性</性別>  </著者> </書籍情報> 【VB6.0】 Dim xmlDocument As New MSXML2.DOMDocument If Not xmlDocument.Load("SAMPLE.xml") Then   MsgBox "XML Read Error!!!"   Exit Function End If '********************************************************* ' ※ここにどのようにコーディングしたらいいのでしょうか? '********************************************************* Call xmlDocument.Save("SAMPLE01.xml")

  • VB2005による旧形式の対応について

    どなたかご教授下さい。 現在、WINXPでVB2005へのバージョンアップ処理をしています。 VB2003のときは出なかったのですが、下記ソースの「objXml.Document」で警告が出てしまいました。 いろいろ調べたのですがどう対処したらよいかわかりません。どなたかご教授願いないでしょうか? 互換による影響だということは分かるのですが、どう修正すればよいのか途方にくれております。 Protected WithEvents objXml As Global.System.Web.UI.WebControls.Xml Dim xml As String = XML_DATA Dim objDoc As XmlDocument = New XmlDocument objDoc.Load(New XmlTextReader(New StringReader(xml))) objXml.Document = objDoc 警告 'Public Property Document() As System.Xml.XmlDocument' は旧形式です: 'The recommended alternative is the XPathNavigator property. Create a System.Xml.XPath.XPathDocument and call CreateNavigator() to create an XPathNavigator.

  • VB2005でDBから取得したデータを指定されたXMLデータへ変換する方法について

    VB2005の初心者です。 Aシステムの開発(VB2005)で、Bシステムとの通信部分の開発をしています。 Bシステムとの通信はTCP/IP通信にて、XMLデータでやりとりをします。 XMLデータは、タグなど形式が決まっています。 単純に、適当なXMLデータを通信でやりとりすることはできたのですが、 AシステムでDB(SQLServer)から取得したデータを、形式に沿ったタグを使用したXMLデータに変換してから通信したいのですが、その変換方法が分りません。 DBのデータをXML形式に変換すると、フィールド名のタグでできると思うのですが、そうではなく、指定したタグを使用してXMLデータを作成するにはどうすれば良いのでしょうか。 タグを指定、もしくは変換する方法などはあるのでしょうか。 何かヒントでも良いので、たくさんの方の知恵をお借りできれば幸いです。 よろしくお願い致します。

  • 値が変わるのはどうしてでしょうか?

    c言語でプログラミングを行い、コンパイルが通って実行した時に エラーが出たので、1行ずつコンパイルしてみました。 /////////////////ソース部分////////////////////////////// a_save[0] = A[0] //(a_save と A は同じ構造体タグ) a_save[1] = A[1] a_save[2] = A[2] ///////////////////////////////////////////////////////// →ここでコンパイルしたときは当然のように a_save[0].a という変数の値は A[0].a の値と同じ8となっています。 ここからもう少し進んで /////////////////ソース部分////////////////////////////// a_save[0] = A[0] //(a_save と A は同じ構造体タグ) a_save[1] = A[1] a_save[2] = A[2] b[0] = B[0] //(b と B は同じ構造体タグ(Aとは別)) b[1] = B[1] b[2] = B[2] ///////////////////////////////////////////////////////// →ここでコンパイルしたときに A[0].a の値は8のままだったの ですが a_save[0].a の値が急に-858993460というような値に なっていました。 これは何故なのでしょうか?メモリか何かが原因なのでしょうか? よろしくお願いします。

  • 中身が一部しかわかっていないXMLの読み方

    XML例 <A> <B> bbb </B> <C> <D> ddd </D> </C> </A> C#でXMLを読み、特定のタグの中身を書き換える処理を実装しようしています。 ただしXMLファイルの中に書き換えたいタグ以外にどんなタグがあるかがわかっていません。 上記の例の場合、 「<A> - <C> - <D>のdddを書き換えたい」ということはわかっています。 この場合どのように行うのがよいでしょうか? ネットでのソースを参考に書き換えたい値のタグが見つかるまで再帰処理を行い タグが見つかった場合値を書き換えるような処理を書いてみました。 よくあるやり方や、もっとスマートな方法が有りましたらご教授お願いします。 また直接関係なくともヒントとなるようなものでも結構です。 よろしくお願いします。 void test() { XmlDocument document = new XmlDocument(); // ファイルから読み込む document.Load(filePath); readXML(document.DocumentElement); } void readXML(XmlNode node) { // if(node.Name == "D") // 書き換えたい値のタグか判定する //{ // 値を書き換える処理 //} if (node.HasChildNodes) { node = node.FirstChild; while (node != null) { readXML(node); node = node.NextSibling; } } }

  • XMLからデータセットへ

    こんにちは 初めての質問です。 今XML形の文字列があります。 string strXML = @" <dataset1> <table1> <column1>a</column1> <column1>b</column1> <column1>c</column1> <column1>d</column1> <column1>e</column1> <column1>f</column1> </table1> </dataset1>"; この文字列をXMLファイルとして保存します。 XmlDocument xml = new XmlDocument(); xml.LoadXml(strXML); xml.Save(@"C:\test.xml"); 保存したXMLファイルをデータセットで読み込みます。 DataSet ds = new DataSet(); ds.ReadXml(@"C:\test.xml"); 以上の流れでデータセットの作成はできますが、 一回XMLファイルを保存しないといけません。 何とか保存しないで、文字列から直接データセットを生成する方法はありますか? よろしくお願いします。

    • ベストアンサー
    • XML
  • VB6のLSETをVB2005で実現するには?

    VB6の下記ソースをVB2005のアップグレードツールで変換したらエラーになってしまいました。VB2005ではサポートされてないみたいで、どのように変更したらよいか途方にくれております。 どなたかご教授下さい。よろしくお願い致します。 --ソース抜粋-- A:構造体変数 B:構造体変数 VB6: LSET A = B VB2005: ?????

  • VBA SAVEするワークブックを切替たい

    VBA初心者です SAVEするワークブックを切替えたいのですが、どうすれば可能でしょうか? 例えば (1)マクロのワークブック (2)A(標準フォーマットファイル) (3)B(データファイル) とした場合、(3)を(2)に貼り付けて、(2)を別名で保存(ダイアログで)したいのですが、(1)が別名 で保存されてしまいます (2)のファイル名で貼り付けは完了しています ダイアログ無しでのファイル名指定であれば SAVEできます ダイアログでのSAVEを、(1)から(2)に切替えられれば良いのですが OS:Windows8PRO Excel2010