In a Windows app I created I did let the users supply a XML file/value which it then converted to an in-memory Sqlite database. After that they can use "simple" SQL queries to extract the desired XML content. Such a class would be great for multiple purposes.
NB: XML is basically the same as a relational database, with related parent/child nodes.
Or, not convert it to a relational database, but flatten it like this:
<parent> <title>abc</title> <child> <name>xyz</name> </child> <child> <name>pqr</name> </child></parent>
... could be converted to a dataset like this:
parent_title | parent_child_name abc | xyz abc | pqr