我有一个包含一个 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")
我考虑将这些数据放入数据库中以运行实际查询,但由于该列表将仅包含几百条记录,因此连接、加载数据等的开销是不值得的。
任何人都知道如何通过 XPath 做到这一点?有更好的方法吗?