0

私のシナリオでは、2 つの XML ファイルがあり、これらのファイルを同時にクエリしたいと考えています。

ファイル 1、publishers.xml

<publishers>
    <publisher pubid="1" name="ABC" />
    <publisher pubid="2" name="RST" />
    <publisher pubid="3" name="XYZ" />
</publishers>

ファイル 2、books.xml

<books>
    <book bkid="1" pubid="1" name="introduction to A" />
    <book bkid="2" pubid="3" name="introduction to B" />
    <book bkid="3" pubid="3" name="introduction to C" />
    <book bkid="4" pubid="2" name="introduction to D" />
</books>

質問:

  • Java/Android で利用できる XML クエリはありますか (LINQ に似ています)?
  • IN JAVAでは、どうすればこれを行うことができますか? (2 つの XML ファイルから同時にクエリを実行したい)

    SELECT book FROM books.xml JOIN publishers.xml ON publishers.pubid = books.pubid AND bkid = "2"

「平易な」英語で説明させてください:)、ノード<book>はbooks.xml属性から選択さbkid=2れ、同時に<publisher>publishers.xmlファイルから選択されますpublishers.pubid=books.pubid.

必要な出力 (処理済み):

Book ID: 2
Book Name: introduction to B
Publisher: XYZ

ありがとう!

4

1 に答える 1

0

これは一般的ですか?いいえ、そうではありませんが、必要な場合もあります。このStackOverflow answerで説明されているように、Xquery を使用します。もちろん、ファイルをマージできれば、問題は単純化されます。

- 編集 -

Android では Xquery がしっかりとサポートされているようには見えないため、別のオプションを検討します。

  1. ファイルを一緒にマージします。両方のストリームをプルダウンし、それらを新しい親ノード内で連結してから、<root> xml files concat here </root>この文字列を dom ドキュメントに変換し、xpath を使用して解析することができます。
于 2012-10-05T19:22:58.153 に答える