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

このQ&Aのポイント
  • VB2005の初心者がDBから取得したデータを指定された形式のXMLデータに変換する方法について
  • TCP/IP通信を利用してBシステムとやりとりするVB2005で、DBから取得したデータを指定された形式のXMLデータに変換する方法について
  • VB2005の初心者がDBから取得したデータをXMLデータに変換する方法についてのヒントを求めています
回答を見る
  • ベストアンサー

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

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

noname#51596
noname#51596

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

  • ベストアンサー
  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

VB.NET ではオブジェクト通信でやり取りする方法として シリアル化という方法を使います。 また XMLでのWEB のデータ通信としては Soap プロトコル が用意されており HTTP では超えられないファイアーウオールも SOAPでの通信なら簡単に実現できます。 私もまだ勉強中の技術ですが覚えていて損はなさそうです。 Soap は XMLでのシリアライズされたデータを扱います。 DBなどのデータも簡単にオブジェクトとして通信できます。 たとえば DATATABLE 形式やDATASET などもです。 下記の参考URL を見てください。 _______________________________________________________ NETで簡単XML 第9回 オブジェクトをXMLでシリアライズ(1) http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml09/easyxml09_01.html ___________________________________________________ 資料 Visual Studio 2005による XML Web サービス入門 http://download.microsoft.com/download/6/c/2/6c2037db-8463-48a7-806c-9e8653203e45/Dev06_WebSrv.ppt [HTMLバージョン] http://72.14.235.104/search?q=cache:rDbPf_bDxLYJ:download.microsoft.com/download/6/c/2/6c2037db-8463-48a7-806c-9e8653203e45/Dev06_WebSrv.ppt+ASp.NET+Soap+%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB+%E5%85%A5%E9%96%80&hl=ja&ct=clnk&cd=5&gl=jp

noname#51596
質問者

お礼

シリアライズというのは初めて聞きましたが、おっしゃるとおり、階層構造のXMLデータを作成することができました。 本当に助かりました。 どうもありがとうございました。

その他の回答 (1)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

DB のVIEW もしくはストアドなどで SELECT 文で列名 を別名で出力すれば問題ないように思えますが。 参考URL 第1回:リレーショナルDBからXML文書を取り出す http://www.atmarkit.co.jp/fxml/tanpatsu/15mssql/mssql01.html 【.NET 1.1/C#/SQLServer】DBとXML間でテーブルデータを受け渡しする方法(旧サイトからコピペ) http://blogs.wankuma.com/mayurin/archive/2006/04/12/22365.aspx

noname#51596
質問者

お礼

アドバイスありがとうございます。 教えていただいたことを参考に、下記でテストをしてみました。 GcmdCommand = new SqlCommand _ ("SELECT ID as ""ID"", " + _ "diagnosis as ""ID/diagnosis"", " + _ "startDate as ""ID/startDate"", " + _ "firstEncounterDate as ""ID/firstEncounterDate"" " + _  "FROM KanjyaInfo WHERE ID = 12345 FOR XML PATH('Customer'), ROOT('doc')" , GconectOb) 出力結果の<doc>配下は下記のとおりで、階層になるはずですが、Webで表示すると階層になっておらず、タグをタグと認識していないようです。 <doc><Customer><ID>12345<diagnosis>diagnosis1</diagnosis><startDate>2002-01-25</startDate><firstEncounterDate>2002-01-26</firstEncounterDate></ID></Customer></doc> as句のパス表記が誤っているのでしょうか。 もしくは、パスを認識するために、何か設定など必要なのでしょうか。 もしご存知でしたら、アドバイスいただけましたら幸いです。

関連するQ&A

  • VB2005でXMLのテキストデータをXMLデータにするには?

    VB2005の初心者です。 タグ付きのXMLのテキストデータを読み込んで、項目ごとにDBに登録したいのですが、やり方が分りません。 テキストデータをXMLデータ、もしくはノード、もしくはデータセット型に変換しなければならないと思うのですが、そのやり方を教えていただきたいです。 ちなみに、XMLデータをテキストデータにするのは下記のとおりでできました。この strText を逆にXMLデータに変換したいです。 Dim xmlDoc As MSXML2.DOMDocument = New MSXML2.DOMDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:XMLData.xml") strText = xmlDoc.xml 何かヒントでも良いので、たくさんの方の知恵をお借りしたいです。

  • VB2005でXMLデータから複数ある要素の数を読み取る方法

    VB2005、XMLの初心者です。 VB2005でXMLデータを読み取って、DBに登録するプログラムを作っています。 XMLデータから項目を読み取るのは、下記のようにパスを指定してできることが分りました。 CreatorInfodNode = xmlDoc.SelectNodes("/Mml/Body/Module", nsmgr1) ID = CreatorInfodNode(0).InnerText.Trim しかし、下記のような同じ要素が複数あるXMLデータの場合、全ての要素を解析してDBに登録したいのですが、要素の数はどうやって読み取れば良いのでしょうか。ちなみに、要素の数は可変です。 上記のパスを指定する場合、要素のタグが同じなら全てパスは同じになり、最初の要素を取ってくるようですが、複数ある場合は全てを解析したいです。 <Mml> <Body> <Module>A</Module> <Module>B</Module> <Module>C</Module> </Body> </Mml> 何かヒントになるようなことでも良いので、皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。

  • XMLからCSV変換について

    今回質問させていただくのは、XML形式からCSV形式の変換についてです。 開発環境はVC++.NETです。 XML形式からCSV変換について参考ソースや説明、アドバイスなどがあるURLを教えて頂きたく。 変換については、値、タグなどが違うだけで、 大体は一緒のものだと思っています。 以上です。 よろしくお願い致します。 また、私が書いた質問内容に誤りがある(変換については、値、タグなどが違うだけで、 大体は一緒のものだと思っています。)場合などは、 どんどん指摘ください。

  • VB.NETでXMLのデータをやり取りする方法

    VB.NET 2003を使用して、Windowsソフトを開発しています。 データの保存にXMLを使用したいのですが、読み出せるのですが書き込めません。 どのような方法でもいいので、既存XMLファイルにデータを追加する方法をご教授願えませんか? また、ご存知であればでよいのですが、VB.NETでWindowsソフト開発で、XMLに関する解説が詳しく掲載されているサイトはありませんか?

  • XMLからデータを取得

    いつもお世話になっております。 XMLファイルに含まれたデータの中から、特定のデータを検索するプログラムを作りたいと思っております。 <AAA Name="テスト">    <BBB x="2" y="2"></BBB>    <CCC Num="0001"></CCC>    <CCC Num="0002"></CCC> </AAA> XMLデータの形式は↑みたいな感じで、これが100以上あり、CCCタグは0~5個までです。 フォームにテキストボックスを配置し、そこに検索したい語句を入れ、 AAAタグのNameの中身と合致したら、BBB、CCCの属性をすべて取得して表示するということをしたいのですが、 どうにも上手くいきません。 VB2008を使用しております。 方法をご存知の方、ご教授ください……orz

  • DataTableにデータを用意した後DBに反映する方法

    VB2008 SQLServer2008で開発しています。 DBにデータを追加したいと思っています。 DataTableを作成しているので これを使って簡単にDBにデータを追加することは できないでしょうか? そのやり方の場合 insert文を1行ずつ実行するのと処理時間に差はあるのでしょうか?

  • VB6でXMLデータのやり取りが出来るサーバを作成するのに困っています

    VB6でXMLデータをやり取りできる自作サーバを作成しようとしているのですが、XMLデータの送り方がわかりません。すごく初歩的な質問ですが宜しくお願いします。

  • XMLタグ情報取得

    PHPにxmlファイルのタグ情報を利用するシステムを構築したいのですが、調べてもよく解らなかったため質問させて頂きます。 PHPは勉強経験があるため解るのですがXMLはまったくの初心者です。 システムは以下の流れです。 システムA(PHP) <?php  $i;  if($iがシステムBで使用されているか確認){   使用されている場合$iで処理  }else{   使用されていない場合xmlファイルからタグ情報取得   for($iの親タグ<B>を取得){    if(<$i><$j><$k>のどれかがシステムBで使用されていないか?){     $jが使用されていた場合、システムAの$iと、システムBの$jは同じ使用用途のデータと判断し処理    }   }  } xmlファイル <?xml version="1.0" encoding="EUC-JP"?> <A> <B> <$i></$i><$j></$j><$k></$k> </B> </A> このようなシステムを構築したいのでご教授お願いします。 違うシステム同士でデータを利用する際、同じ使用用途でもシステムによって名称が異なる場合にも対応できるシステムを課題としています。 また、DOM方式を利用した方法だと助かります。 環境はXP、PHP5、Apache2.0です

    • ベストアンサー
    • PHP
  • VB.2005でXMLを読み込む時のパス設定

    Javaで作成されたXMLをVB.net2005で読み取る際にVBでのXMLへのパス指定に関する質問です。開発環境はVisualStadio2005です。 javaで「D\Sample.xml」(適当なフォルダーに)を吐き出し。 ***VB***↓ Imports System.Xml Module Module1 Sub Main(ByVal args() As String) 'XMLファイルの読取り Dim xmlRdr As New XmlTextReader(args(0).Trim()) xmlRdr.Read() Console.WriteLine("タグ名:" + xmlRdr.LocalName) Console.WriteLine("値:" + xmlRdr.ReadString()) xmlRdr.Close() EnD Sub End Module プロジェクトのプロパティページのデバッグでコマンドライン引数指定で「D\Sample.xml」を指定。 しかし、読み込まれるのは\objの\Releaseと\のDebug上のxmlを読み込んでしまいます。しかも自動バックアップ?の関係で上記コードに無い作動(上記だと読み込みだけだが、先に作ったXML作成モジュールを実行してしまう)でXMLを自動作成してしまいます。 好きな場所のファイル名を指定させる方法を教えて下さい。 普段はEclipse+Javaで開発を行っていてEclipseのパス設定感覚ではうまくいかないのですか?

  • ajaxにより取得したxmlデータの加工について

    ajax通信でRSSのxmlデータを取得し、一部のタグを抽出してhtml上にリンク一覧を作りたく、以下のような処理をテストで作りました。 $(function() { $.ajax({ url: '取得対象のxmlファイルパス', type: 'GET', success: function(data) { //var json = $.xml2json(data); $(data)find('title').each(function(){ console.log($(this).text()); }); } }); }); コンソールにはすべて空データしか確認できないのですが、取得したdataを変換等する必要がありますでしょうか。