• 締切済み

複数のXMLファイルからデータを抽出したい(初心者です)

かなり膨大なCSVファイル群をXML化して、XSLT等で様々な条件指定で抽出できるようにしたいのですが、その場合、ソースとなるXMLファイルは複数にちらばっていても大丈夫なのでしょうか(RDBMSのテーブル群のようなイメージです)?それとも一つのファイルになっていないとダメなのでしょうか?どなたかご教示お願いいたします。

  • XML
  • 回答数3
  • ありがとう数14

みんなの回答

  • zut
  • ベストアンサー率0% (0/2)
回答No.3

xslは、xmlのデータの表示方法をいろいろ指定することはできますが、データベースの操作のように、xslの処理で、あっちのxmlからデータを取ってきたり、こっちのxmlからデータをとってきたりは出来ないでしょう。 xslとxmlだけで行うなら、条件指定で抽出したいデータは、一つのxmlにすべて持っている必要があります。 他のプログラムで、複数のxmlから抽出結果だけのxmlを作るとかすれば、なんでもアリなので、それぞれのxmlをテーブルのように扱えると思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>docrootのところに複数あるxmlファイルのパスを書き込むイメージでしょうか? はい、そのつもりです。もちろん全体としての構造はDTDに適うものでなければなりませんけど・ … <!ENTITY data1 SYSTEM "data1.xml"> <!ENTITY data2 SYSTEM "data2.xml"> <!ENTITY data3 SYSTEM "data3.xml"> … として <docroot> &data1; &data2; &data3; </docroot> の様にして合体できると思います

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

意味を勘違いしてるかもしれませんが、複数のXMLファイルを1つのXMLファイルとしてXMLファイルから取り込むことができるかと言えばできます。 例えば、 <?xml version="1.0" encoding="Shift-JIS" ?> <!-- スタイル --> <?xml-stylesheet type="text/xsl" href="namebookHTML.xsl"?> <!-- 文書宣言 --> <!DOCTYPE docroot SYSTEM "namebook.dtd" [ <!ELEMENT docroot (namebook)> <!ENTITY data SYSTEM "namedata.xml"> ] > <!-- 本文 --> <docroot> &data; </docroot> のようにして、まとめのXMLファイルから実際のデータファイルであるXMLファイルを読み込むことができます。 結局最終的に読み込んで1つのまとまりとしてDTDに合っていればよくて、その中の部分は、XSLTで抽出は必要なレベルで取り出せばいいと思います。

tks141
質問者

お礼

お礼が遅くなって大変失礼いたしました。ご回答誠にありがとうございます。 docrootのところに複数あるxmlファイルのパスを書き込むイメージでしょうか?

関連するQ&A

  • 別々のフォルダに収められているXMLファイルから特定のノードを抽出する方法

    XMLデータを検索、抽出する場合の方法について教えて下さい。 複数のXMLファイルが100以上の複数のフォルダに収められています。 (フォルダは作成日時となっており、規則性があります) 別々のフォルダに収められているXMLファイルから特定のノードを抽出する場合にはどのような方法で行うのが良いのでしょうか? Xqueryがよいのでしょうか?それともXSLTが良いのでしょうか? いろいろ調べてみましたが、異なるフォルダから特定のノードを検索、抽出する方法が見つかりませんでした。 どなたかご教授いただきたく、よろしくお願いします。 なお、これから学習するような状況ですので、良い本なども教えて頂けるとありがたいです。

    • 締切済み
    • XML
  • 複数のXMLファイルからのデータ抽出

    いつもお世話になっております。 .netFramework + C#環境で、XMLを使用して、Webページにリストを表示させるプログラムを考えています。 (正確には、XMLファイルのあるタグの中のデータを一覧で表示させたい。) 何が問題かというと、このXMLファイルが複数あり、しかもフォルダが階層化されている ということです。 幸いなことにフォーマットは同じなので、その点は問題ないのですが、複数の人間がその都度フォルダにXMLファイルを追加するので、ファイル名を指定して、プログラムを書くことが難しい状況です。 .net Framework のFileSystemObjectをうまく使えないかと考えています。 よろしくお願い致します。

  • クエリにおける複数値の抽出について

    クエリにおける複数値の抽出について access2007を使用しています。 テーブルA,テーブルBを元にクエリCを作成しました。 テーブルAには担当というフィールドがありますが,複数の値の入力を許可しており,テーブルBを値集合ソースとして設定してあります。 クエリCにおいて,以下のような抽出をしたいと考えています。 例えば, ID_所員ID_担当 001_B001,B002,B003_山田,佐藤,鈴木 002_B002_佐藤 003_B001,B002_山田,佐藤 において,所員IDの抽出条件のところにB002と入力すると,ID002のみが抽出されるといった感じです。 B002と抽出条件を設定すると,B002を含む全てのレコードが抽出されてしまいます。この場合ですと,ID001から003の全てのレコードが抽出されます。 担当のところで抽出条件を佐藤と設定し,さらに所員IDの抽出条件のところに,Len関数を使用して4文字以下とすれば…とも考えたのですが上手くいきません。 もし,良い方法があればご教示ください。

  • excelvbaでxmlファイルの内容の抽出

    excelvbaでDomを使用し指定したxmlファイルを読み込んでselectNodes("")で欲しい内容を抽出をすることは出来ました。 しかしxmlファイルが大量にあり一つ一つファイルを指定して抽出するのは時間がかかりすぎてしまいます。 ですのでフォルダ内にあるすべてのxmlファイルからselectNodes("")で欲しい内容を抽出したいのですが出来ますでしょうか? また抽出したものをmdbのテーブルにレコードとして保存したいのですが 現在はexcelのセルに書き込んでからmdbに入れているのですが vbaで欲しい内容を抽出した結果をそのままmdbに保存する方法はありますか? お願い致します。 下記に指定したxmlファイルを読み込んで欲しい内容を抽出するというのを行ったときのものを載せておきます。 Dim XDoc As MSXML2.DOMDocument Dim Node As MSXML2.IXMLDOMNode Sub てすと() Set XDoc = New MSXML2.DOMDocument If XDoc.Load(ThisWorkbook.Path & "\テスト.xml") = False Then With XDoc.parseError Debug.Print .errorCode & " / " & Replace(.reason, vbCrLf, "") Debug.Print "行 :" & .Line & " , カラム :" & .linepos Debug.Print "内容 :" & .srcText Debug.Print "" Debug.Print "ファイル(URL) :" & .url Debug.Print "ファイル先頭からの位置 :" & .filepos End With Exit Sub End If Debug.Print "読み込み成功" For Each Node In XDoc.selectNodes("抽出したい内容") Cells(1, 1) = Node.Text Debug.Print Node.Text Next Set XDoc = Nothing End Sub

  • XSLTで固定長データファイルをつくるには?

    XSLTで固定長データファイルを作成する方法を教えてください。もとのXMLのデータは固定長に整形されておらず、XSLTでの変換時に、空白で不足分を埋めたいと考えています。 もちろん、XSLTでCSVファイルを作成する方法は知っているので、XSLTで空白によるパディングをする方法が知りたいです。 よろしくお願いします。

    • ベストアンサー
    • XML
  • ExcelのVBAで、XMLファイルのデータ抽出

    はじめまして。 XMLファイルに含まれたデータの中から、特定の条件のデータのみを抽出するプログラムを作りたいと思っております。 XMLファイルの中身は <p name="test">あいうえお</p> <p name="test2">かきくけこ</p> <p name="test3">さしすせそ</p> … のようなデータが2~300以上あり、その中から、NAMEが"test"のものだけを抽出するプログラムなのですが、ExcelのVBAで可能でしょうか? ご教授頂ければ幸いです。よろしくお願いいたします。

  • VBAで複数ファイルからのデータ抽出を行いたい。

    すみません、知恵をお貸しください。 VBA初心者です。 一つの同じフォルダ内にあるエクセルの同じ形式の複数ファイル(*.xls)から、データを抽出し(例.A2:k2)一つのファイルを作成したいのですが、どうにか一行目だけを抽出することができました。 しかし、データ抽出をしたい複数ファイルの中には(A2:k2)だけではなく、複数行に渡りデータが入っているもの(A3:k3まで、やA5:k5までなど)があり、それら全てを抽出したいのです。 何らかの条件付けの上でループをさせればいいのかな?とも考えたのですが、うまくいきません。 どうかご教授お願いします。

  • 複数のxmlファイルの合体

    複数のxmlファイルの合体 XML、JavaScriptのど素人です。諸先輩方のアドバイスを乞いたくよろしくお願いいたします。 XML本のサンプルプログラムで、XML/XSL/JavaScript(html内に記述されている)を用いた 検索プログラムを以下の理由で改良したいと考えています。 <books> <book> <data1>データ</data1> <data2>データ</data2> <data3>データ</data3> </book> </books> の構造を持つxmlファイルがあったとして データの更新が頻繁に行われるのは<data3>要素だけなので、 <books> <book> <data1>データ</data1> <data2>データ</data2> </book> </books> -----xml1 <books> <book> <data3>データ</data3> </book> </books> -----xml2 のように2ファイルに分離し、 JavaScriptの検索プログラムで、<data1>~<data3>要素から条件にあったデータを抽出したいのですが どうすればいいのでしょうか?よろしくお願いします。

    • 締切済み
    • XML
  • データベースの保存と読み込み(XML、CSV)

    複数のテーブルに分かれてるデータを一つのファイルに保存をし、保存したファイルからそれぞれのテーブルごとに表示をするという処理を行いたいと思っています。 どのようにして行ったら良いのか迷っているのですが、皆様でしたらどのようにされますか? 私は、初めにテーブルの一つ一つのデータをCSVで区切り、それをテーブル事にXMLのタグで分けて保存をし、それを開くときにはタグでテーブルを判断し、CSVでデータを区別して取得をするようにしていました。 (解っていただけるでしょうか?^^;) ところが、分けあってXMLがうまく使えないようになりました。 そこで、他の方法を考えているのですが、何か良い方法をご存知ありませんでしょうか? プログラミング環境はBCBです。

  • LinuxでXMLを静的にHTMLに変換

    こんにちは。 XSLTを使い、XML文書を静的にHTMLに変換するツールを探しています。 WindowsのMSXSL.exeみたいなやつで... できれば、シェルから引数でXMLファイル名、XSLTファイル名、出力ファイル名とオプションを指定して変換する、くらいのものがいいです。 それとも、Perlのスクリプトか何かでありますでしょうか? よろしくおねがいします。

    • ベストアンサー
    • XML

専門家に質問してみよう