- 締切済み
複数のXMLファイルからデータを抽出したい(初心者です)
かなり膨大なCSVファイル群をXML化して、XSLT等で様々な条件指定で抽出できるようにしたいのですが、その場合、ソースとなるXMLファイルは複数にちらばっていても大丈夫なのでしょうか(RDBMSのテーブル群のようなイメージです)?それとも一つのファイルになっていないとダメなのでしょうか?どなたかご教示お願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- zut
- ベストアンサー率0% (0/2)
xslは、xmlのデータの表示方法をいろいろ指定することはできますが、データベースの操作のように、xslの処理で、あっちのxmlからデータを取ってきたり、こっちのxmlからデータをとってきたりは出来ないでしょう。 xslとxmlだけで行うなら、条件指定で抽出したいデータは、一つのxmlにすべて持っている必要があります。 他のプログラムで、複数のxmlから抽出結果だけのxmlを作るとかすれば、なんでもアリなので、それぞれのxmlをテーブルのように扱えると思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>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)
意味を勘違いしてるかもしれませんが、複数の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で抽出は必要なレベルで取り出せばいいと思います。
お礼
お礼が遅くなって大変失礼いたしました。ご回答誠にありがとうございます。 docrootのところに複数あるxmlファイルのパスを書き込むイメージでしょうか?