1 つの XML 文字列フィールドを含むオブジェクトのリストがあります。そのフィールドに対してSQLのようなクエリを実行し、値を満たすサブリストを取得する必要があります。XPath を使用しようとしています。
まず、これを実現するための XPath 文字列がわかりません。第二に、これを行うためのより良い方法があるかもしれません。SOを検索してみましたが、答えは実際にはこの問題に対処していません
詳細
私は本のリストを持っています:
List <Books> allBooks;
Book クラスには、id フィールドと details フィールドを含めることができます。詳細は XML です。
class Book
{
String id;
String details; //XML
}
詳細 xml 文字列のサンプルを次に示します。
<book>
<name>Harry Potter and the sorcerer's stone</name>
<author>J K Rowling</author>
<genre>fantasy</genre>
<keyword>wizard</keyword>
<keyword>british</keyword>
<keyword>hogwarts</keyword>
<price>25</price>
</book>
ですから、ここまではすべて石で設定されています。これは既存のコードの一部であり、その設計を変更することはできません。
私の仕事は、リストallBooksを取得してクエリを実行することです。そのロジックは次のとおりです。
WHERE author = "J K Rowling" AND
genre = "fantasy" AND
(keyword = "wizard" OR keyword="hogwarts")
このデータを DB に投げて実際のクエリを実行することを検討しましたが、リストには数百のレコードしか含まれないため、接続やデータの読み込みなどのオーバーヘッドは価値がありません。
XPathを介してこれを行う方法を知っている人はいますか? これを行うより良い方法はありますか?