- PR -

2つのXMLファイルデータの照合

1
投稿者投稿内容
pavel
会議室デビュー日: 2005/01/27
投稿数: 1
投稿日時: 2005-01-28 23:06
初めての投稿ですが、よろしくお願いします。

メインXMLとフォーマットXMLの2つのファイルを用意します。

メインxmlの構成は

<samp>0</samp>
<data>1</data>
<item>2</item>

フォーマットxmlの構成は

<test>samp</test>
<work>item</work>
とし、メイン関数のタグ名をデータしてもちます。

例としていうと
document関数等で、フォーマットxmlの<test>タグのデータをとります。
この時sampという値が入っていたらメインxmlのsampタグからデータを
抽出するというようなことは可能でしょうか。

いろいろ調べてはみたのですが、どうしても実現方法が分かりません。
いい方法を知っている方がいましたらご教授おねがいします。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-01-29 03:24
調べた過程を書かれると、より良いアドバイスが受けられると思いますよ
と言うのは置いといて。

両者の DOM を作って良いのなら、フォーマットの DOM から /test などの XPath クエリで値(今の場合 samp)を取り出し、それを基にしてメイン用のクエリ /samp を作り、メインの DOM に適用すれば出来ます。
クエリ結果のチェック(test の内容が samp でない場合、test タグ自体が存在しない場合など)はご随意に。

XSLT のみの場合では、第一のクエリ相当のスタイルシートを適用するところまでは一緒ですが、第二のクエリを動的に構成するのがやや面倒でしょうか。
SAX オンリーで処理する場合は、メイン XML のパーズ時に第一のクエリ結果を引数として与えられればできますね。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-01-29 05:53
XSLT の場合だと、
・フォーマットを読んでメインを処理する XSLT を生成する XSLT
・メインを処理する XSLT
の2段で処理すると楽なのかもしれません。
1

スキルアップ/キャリアアップ(JOB@IT)